acme.sh申請Lets Encrypt 免費HTTPS

使用acme.sh從letsencrypt生成免費證書

1.安裝acme.sh

使用root用戶安裝

curl 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源碼分析 - 事件機制

TAG:前端開發 | Linux | HTTPS |