acme.sh
實現了 acme
協議, 可以從 letsencrypt
生成免費的證書。
- 安裝 acme.sh
- 生成證書
- copy 證書到 nginx/apache 或者其他服務
- 更新證書
安裝 acme.sh
安裝很簡單, 一個命令:
curl https://get.acme.sh | sh
普通使用者和 root 使用者都可以安裝使用。
會安裝在 ~/.acme.sh/
目錄下,以後生成的證書也會在這裡面,按照域名為資料夾安置。
理論上會自動新增一個 acme.sh
別名,但有時候並不會生成,需要手動執行以下命令:
source ~/.bashrc
生成證書
acme.sh
生成的證書只有三個月有效時間,然後再自動更新證書,所以,推薦使用 HTTP
驗證的方式。
HTTP
方式需要在你的網站根目錄下放置一個檔案, 來驗證你的域名所有權,完成驗證。然後就可以生成證書了。
acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/
更推薦使用 Nginx
方式來驗證,簡單。
如果你用的 Nginx
伺服器, 或者反代, acme.sh
還可以智慧的從 Nginx
的配置中自動完成驗證, 你不需要指定網站根目。
acme.sh --issue -d mydomain.com --nginx
經過一系列的操作,如果成功了,會在
~/.acme.sh/mydomain.com
生成對應的證書。
copy 證書到 nginx/apache 或者其他服務
不要直接複製證書。
acme.sh --installcert -d <domain>.com
--key-file /etc/nginx/ssl/<domain>.com/<domain>.key
--fullchain-file /etc/nginx/ssl/<domain>.com/fullchain.cer
--reloadcmd "service nginx force-reload"
--reloadcmd
表示複製完成後重啟伺服器的命令,根據自己伺服器狀況填寫。
/etc/nginx/ssl/<domain>.com/
需要自己建立好,如果資料夾不存在,會報錯。
更新證書
目前證書在 60 天以後會自動更新,你無需任何操作。今後有可能會縮短這個時間,不過都是自動的,你不用關心。