Let's Encrypt 證書申請及配置

簡介

Let's Encrypt —— 是一個由非營利性組織 互聯(lián)網(wǎng)安全研究小組(ISRG)提供的免費、自動化和開放的證書頒發(fā)機構(gòu)(CA)筋量,簡單的說,就是為網(wǎng)站提供免費的 SSL/TLS 證書。

簽發(fā)工具

Let's Encrypt 生成證書的工具很多勤晚,certbot 是官方推薦的簽發(fā)工具似嗤,也可以通過在線服務申請啸臀,例如:

  • FreeSSL(不支持自動續(xù)簽)
  • 七牛(不支持 DV 泛域名)
  • 又拍云(不支持 DV 泛域名)

在線一站式服務管理方便,但可能需要綁定業(yè)務烁落,個人用戶還是推薦通過工具生成證書乘粒。
這里推薦 acme.sh,它不僅有詳細的中文文檔伤塌,操作更為方便灯萍,還支持 Docker

acme.sh

以 root 用戶為例

在線安裝

curl https://get.acme.sh | sh

安裝過程:

  1. home 目錄下生成 .acme.sh 文件夾每聪,查看文件夾內(nèi)容:ls ~/.acme.sh/旦棉;

  2. 自動添加 bash alias:

    # ~/.bashrc 添加:
    . "/root/.acme.sh/acme.sh.env"
    
    # acme.sh.env 內(nèi)容:
    # alias acme.sh="/root/.acme.sh/acme.sh"
    
  3. 自動添加定時任務(時間隨機):

    # 每天凌晨檢查證書的有效期齿风,如有需要,自動續(xù)簽绑洛。
    30 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
    

相關(guān)命令

# 查看幫助
acme.sh -h

# 查看列表
acme.sh --list

# 卸載 acme.sh
# 編輯 ~/.bashrc救斑,刪除 acme.sh alias
acme.sh --uninstall

腳本更新

自動更新:acme.sh --upgrade --auto-upgrade
手動更新:acme.sh --upgrade
關(guān)閉更新:acme.sh --upgrade --auto-upgrade 0

證書申請

驗證域名所有權(quán)驗證方式:HTTP 和 DNS

  • HTTP:在網(wǎng)站的根目錄下添加一個文件
  • DNS:在域名上添加一條 txt 解析記錄

HTTP

acme.sh 會自動生成驗證文件,并放到站點的根目錄真屯,然后自動完成驗證脸候,最后自動刪除文件。

  • -d:同 --domain绑蔫,域名
  • -w:同 --webroot运沦,站點根目錄
acme.sh --issue -d mydomain.com -d www.mydomain.com -w /websvr/mydomain.com/

Nginx:自動從配置中獲取站點的根目錄

acme.sh --issue -d mydomain.com --nginx

注:根據(jù)中國大陸工信部的規(guī)定,所有托管在中國大陸服務器上的網(wǎng)站均需要備案配深。

—— 站點如未備案携添,80 端口處于禁用狀態(tài),acme.sh 無法使用 HTTP 驗證域名所有權(quán)凉馆。

DNS

優(yōu)勢:不需要服務器與公網(wǎng) ip薪寓,只要配置 DNS 解析即可。
不足:必須配置 Automatic DNS API 才可以自動續(xù)簽澜共。

# https://github.com/Neilpang/acme.sh/wiki/dns-manual-mode
# 注:DNS 不支持自動續(xù)簽

# 步驟:
# 1. 生成相應的解析記錄
# 2. 域名解析中添加生成的 txt 記錄
# 3. 等待解析其生效
acme.sh --issue --dns -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

# 查詢域名 txt 記錄
nslookup -type=txt _acme-challenge.mydomain.com

# 解析生效后向叉,重新生成證書(注:確實是 renew)
acme.sh --renew -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

DNS API(推薦)

根據(jù)域名服務商,選擇對應的 DNS API嗦董。

阿里云:控制臺

創(chuàng)建 Accesskey

# 獲取到 Key 和 Secret 后母谎,設(shè)置環(huán)境變量
export Ali_Key="123"
export Ali_Secret="abc"

# 生產(chǎn)證書
acme.sh --issue --dns dns_ali -d mydomain.com -d www.mydomain.com

DNSPod:控制臺(注:非騰訊云控制臺)

創(chuàng)建 API Token

# 獲取到 ID 和 Key 后,設(shè)置環(huán)境變量
export DP_Id="123"
export DP_Key="abc"

# 生產(chǎn)證書
acme.sh --issue --dns dns_dp -d mydomain.com -d www.mydomain.com

通配符證書

Wildcard 證書京革,目前只支持 DNS-01 驗證方式奇唤。

# 阿里 DNS API
acme.sh --issue --dns dns_ali -d mydomain.com -d *.mydomain.com

證書配置

生成的證書都在 home 目錄下: ~/.acme.sh/

導出證書

使用 --install-cert 命令

  • -d:域名
  • –key-file:私鑰位置
  • –fullchain-file:證書位置
  • –reloadcmd:重載命令
acme.sh --install-cert -d mydomain.com \
        --key-file /websvr/ssl/mydomain.key \
        --fullchain-file /websvr/ssl/fullchain.cer \
        --reloadcmd "docker exec -t nginx nginx -s reload"

Nginx 配置

server {
    listen 80;
    server_name mydomain.com;
    # 重定向到 https
    rewrite ^(.*)$  https://$host$1 permanent;
}

server {
    listen 443;
    server_name mydomain.com;
    root   /websvr/www/mydomain.com;
    index  index.html index.htm;

    access_log /dev/null;
    error_log  /websvr/log/nginx/mydomain.com.error.log warn;

    # SSL 配置
    ssl on;
    ssl_certificate /websvr/ssl/fullchain.cer; # 證書文件
    ssl_certificate_key /websvr/ssl/mydomain.key; # 私鑰文件
    ssl_session_timeout 5m; # 會話緩存過期時間
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 開啟 SSL 支持
    ssl_prefer_server_ciphers on; # 設(shè)置協(xié)商加密算法時,優(yōu)先使用服務端的加密套件
}

重啟 Nginx 服務:

docker exec -t nginx nginx -s reload

SSL 檢測

https://myssl.com

更新證書

定時任務會自動更新

強制續(xù)簽證書:acme.sh --renew -d mydomain.com --force

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匹摇,一起剝皮案震驚了整個濱河市咬扇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌廊勃,老刑警劉巖懈贺,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異坡垫,居然都是意外死亡梭灿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門冰悠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堡妒,“玉大人,你說我怎么就攤上這事溉卓∑こ伲” “怎么了搬泥?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長万栅。 經(jīng)常有香客問我佑钾,道長西疤,這世上最難降的妖魔是什么烦粒? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮代赁,結(jié)果婚禮上扰她,老公的妹妹穿的比我還像新娘。我一直安慰自己芭碍,他們只是感情好徒役,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窖壕,像睡著了一般忧勿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞻讽,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天鸳吸,我揣著相機與錄音,去河邊找鬼速勇。 笑死晌砾,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的烦磁。 我是一名探鬼主播养匈,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼都伪!你這毒婦竟也來了呕乎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤陨晶,失蹤者是張志新(化名)和其女友劉穎猬仁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體珍逸,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡逐虚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谆膳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叭爱。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖漱病,靈堂內(nèi)的尸體忽然破棺而出买雾,到底是詐尸還是另有隱情把曼,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布漓穿,位于F島的核電站嗤军,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晃危。R本人自食惡果不足惜叙赚,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望僚饭。 院中可真熱鬧震叮,春花似錦、人聲如沸鳍鸵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偿乖。三九已至击罪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贪薪,已是汗流浹背媳禁。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留古掏,地道東北人损话。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像槽唾,于是被迫代替她去往敵國和親丧枪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容