使用 acme 指令碼給專案新增 https 證書排查錯誤一例

yyy123456發表於2021-12-23

使用 acme 指令碼給專案新增 https 證照排查錯誤一例

step 1:首先是安裝

先放官網文件:
github.com/acmesh-official/acme.sh...
上面是中文概況說明

github.com/acmesh-official/acme.sh...
上面是最重要的簽發證照說明。

可能會需要科學上網,總之得到 master.tar.gz 這個檔案,從github 的 acme 專案獲得,解包是個資料夾,叫做 acme.sh-master。
另外,有兩種方法 http 和 dns ,本文采用 http 方式
建議使用 root 使用者。
進入這個資料夾,安裝,命令是

cd acme.sh-master
./acme.sh --install
或者
./acme.sh --install -m  my@example.com

要點是,那個郵箱得真的是你自己的郵箱。

step 2:設定環境

如下命令

cd 
source .bashrc

其實意思就是讓安裝的別名立刻生效。

step 3:簽發證照,也是最重要的步驟

如果安裝時沒有指定郵箱,這裡必須指定,也是我出錯的地方,特此記錄一下。
先確保 nginx 是啟動狀態,專案可訪問
假設域名是 xxx.xxx.com
nginx 的 這個專案的單獨的虛擬主機配置檔案 /etc/nginx/conf.d/xxx.xxx.com.conf,官網說,也可以寫總配置。

acme.sh  --issue --accountemail "我的郵箱@xxx.com"  -d xxx.xxx.com   --nginx /etc/nginx/conf.d/xxx.xxx.com.conf

注意螢幕提示,快幾秒,慢要好幾分鐘,看人品。
因為這是發起一個遠端請求,請求證照。
看到如下提示說明成功

[Thu Dec 23 01:14:16 CST 2021] Your cert is in: /root/.acme.sh/xxx.xxx.com/amxxx.xxx.com.cer
[Thu Dec 23 01:14:16 CST 2021] Your cert key is in: /root/.acme.sh/xxx.xxx.com/amxxx.xxx.com.key
[Thu Dec 23 01:14:17 CST 2021] The intermediate CA cert is in: /root/.acme.sh/xxx.xxx.com/ca.cer
[Thu Dec 23 01:14:17 CST 2021] And the full chain certs is there: /root/.acme.sh/xxx.xxx.com/fullchain.cer

step 4:複製證照到自己指定目錄

mkdir -p /etc/nginx/pem/xxx.xxx.com/
chown -R  nginx:nginx /etc/nginx/pem

acme.sh --install-cert -d xxx.xxx.com --key-file /etc/nginx/pem/xxx.xxx.com/key.pem --fullchain-file /etc/nginx/pem/xxx.xxx.com/cert.pem  --reloadcmd "systemctl restart nginx"

step 5: 修改 nginx 配置並重啟

 listen 80;
 listen 443 ssl http2;
 server_name xxx.xxx.com;
 index index.php index.html ;
 root /www/wwwroot/xxx/public;

 ssl_certificate   /etc/nginx/pem/xxx.xxx.com/cert.pem;
 ssl_certificate_key  /etc/nginx/pem/xxx.xxx.com/key.pem;
 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
 ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
 ssl_prefer_server_ciphers on;
 ssl_session_cache shared:SSL:10m;
 ssl_session_timeout 10m;
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章