站点图标 Linux-技术共享

使用 acme.sh申请SSL证书并且定期自动更新

测试环境:Debian10 64Bit,在我们的实际项目生产过程中往往需要为部署的服务和域名配置 SSL 证书,可以采用的方法有很多种,例如可以申请免费 SSL 证书,或者也可以使用 CloudFlare 的 SSL 服务。本文介绍了一种使用 acme.sh 脚本工具来申请 Let’s Encrypt! 免费的 SSL 证书,并能够在证书快过期时自动重新申请新证书。这样减轻了运维的负担,不需要再去记录证书的过期时间,也不需要再手动申请新证书和手动进行更新了。首先我们更新组件和窗口:
apt -y update && apt -y install socat openssl cron dnsutils libaio1 libaio-dev build-essential manpages-dev libncurses5 zip gnupg libaio1 wget curl screen unzip vim curl xz-utils openssl gawk file rpm && screen -S setupscreen
一、安装软件【安裝完之後會在 root 目錄下產生一個 .acme.sh 資料夾】
curl https://get.acme.sh | sh    或者:wget -O - https://get.acme.sh | sh

CloudFlare 設定:登入您的 CloudFlare ,選擇其中一個網域之後該頁面會下方會有一個 API 的選項

選擇 Global API Key 的檢視

系統會要求再次輸入您的密碼

輸入完之後就會看到您的專屬的 API 的 KEY 了

再來使用腳本方式 shell script 來更新憑證,產生的憑證會一份是在 acme.sh 目錄下會看到此目錄,acme.sh 每 60 天會自動重新加載這個指令來自動續期憑證,完全不需手動執行任何操作!

手動更新
acme.sh --upgrade
啟用自動更新
acme.sh --upgrade --auto-upgrade
禁用自動更新
acme.sh --upgrade --auto-upgrade 0
停止自動續期憑證
將 -d 後面的修改成不要繼續使用憑證
acme.sh --remove -d xxx.com

補充說明


憑證檔案分別會有 4 個

檔案名稱 說明
cert.pem 申請網域的憑證
chain.pem Let's Encrypt 的憑證
fullchain.pem cert.pem 及 chain.pem 合併檔案
privkey.pem 申請網域的憑證密鑰
退出移动版