說明
3月14日,Let's Encrypt的執行董事Josh Aas對外宣布,他們的通配符證書正式上線,用戶可以基於此特性輕松部署/開啟所有子域名的HTTPS功能。
Let's Encrypt 是國外一個公共的免費SSL項目,由 Linux 基金會托管,它的來頭不小,由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等組織發起,目的就是向網站自動簽發和管理免費證書,以便加速互聯網由 HTTP 過渡到 HTTPS,目前 Facebook 等大公司開始加入贊助行列。
Let's Encrypt 已經得了 IdenTrust 的交叉簽名,這意味着其證書現在已經可以被 Mozilla、Google、Microsoft 和 Apple 等主流的瀏覽器所信任,用戶只需要在 Web 服務器證書鏈中配置交叉簽名,瀏覽器客戶端會自動處理好其它的一切,Let's Encrypt 安裝簡單,使用非常方便。
http://www.infoq.com/cn/news/2018/03/lets-encrypt-wildcard-https
獲取證書生成工具 certbot
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
獲取證書
./certbot-auto certonly -d 你的域名 -d *.你的域名 --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory
上述有三個交互式的提示:
是否同意 Let's Encrypt 協議要求
詢問是否對域名和機器(IP)進行綁定
輸入郵箱,給你發送一封驗證郵件
確認同意才能繼續。
繼續查看命令行的輸出,非常關鍵:
-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.xxx.cn with the following value:
2_8KBE_jXH8nYZ2unEViIbW52LhIqxkg6i9mcwsRvhQ
Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue
Waiting for verification...
Cleaning up challenges
求給 _acme-challenge.xxx.cn 配置一條 TXT 記錄,在沒有確認 TXT 記錄生效之前不要回車執行。
然后輸入下列命令確認 TXT 記錄是否生效:
$ dig -t txt _acme-challenge.xxx.cn @8.8.8.8
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;_acme-challenge.xxx.cn. IN TXT
;; ANSWER SECTION:
_acme-challenge.xxx.cn. 599 IN TXT "2_8KBE_jXH8nYZ2unEViIbW52LhIqxkg6i9mcwsRvhQ"
確認生效后,回車執行
恭喜您,證書申請成功,證書和密鑰保存在下列目錄:
$ tree /etc/letsencrypt/archive/xxx.cn
.
├── cert1.pem
├── chain1.pem
├── fullchain1.pem
└── privkey1.pem
證書更新
證書有效期為三個月,到期之前需要更新證書,更新流程就是重新執行一遍上面的操作,新證書會在你申請證書的日期上加三個月。
