acme.sh申請Lets Encrypt 免費HTTPS
使用acme.sh從letsencrypt生成免費證書
1.安裝acme.sh
使用root用戶安裝
curl https://get.acme.sh | sh
2.生產證書
第一種方式,http 方式需要在你的網站根目錄下放置一個文件, 來驗證你的域名所有權,完成驗證. 然後就可以生成證書了.
第二種方式,dns 方式, 在域名上添加一條 txt 解析記錄, 驗證域名所有權.
首先登錄你的dnspod賬號。生產API ID和Key例如阿里雲在.acme.sh目錄下的account.conf添加id和key
然後使用
acme.sh --issue --dns dns_xx -d aa.com
xx對應前面保存在account.conf裡面的Ali
然後證書就自動生成了
copy
注意, 默認生成的證書都放在安裝目錄下: ~/.acme.sh/,
正確的使用方法是使用 --installcert 命令,並指定目標位置, 然後證書文件會被copy到相應的位置, 例如:acme.sh --installcert -d <domain>.com --key-file /etc/nginx/ssl/<domain>.key --fullchain-file /etc/nginx/ssl/fullchain.cer --reloadcmd "service nginx force-reload"
(一個小提醒, 這裡用的是 service nginx force-reload, 不是 service nginx reload, 據測試, reload 並不會重新載入證書, 所以用的 force-reload)
Nginx 的配置 ssl_certificate 使用 /etc/nginx/ssl/fullchain.cer ,而非 /etc/nginx/ssl/.cer ,否則 SSL Labs 的測試會報 Chain issues Incomplete 錯誤。
更新acme.sh
acme.sh --upgrade自動升級acme.sh --upgrade --auto-upgrade關閉自動更新acme.sh --upgrade --auto-upgrade 0
出錯了咋辦
acme.sh --issue ..... --debug acme.sh --issue ..... --debug 2
最後還需要配置nginx才能生效
ps:如果是在阿里雲使用,別忘了配置安全組
推薦閱讀:
※前端新手應該如何正確理解腳本是什麼?
※淺學Ajax
※汪汪汪,抓緊啦,年前最後一期周刊來啦
※為SPA進行合理的代碼分割
※React源碼分析 - 事件機制