Linux生成TLS證書


安裝acme.sh

證書的生成有許多方法,這里使用的是比較簡單的方法:使用 acme.sh 腳本生成。

注意:針對debian9系統,在執行安裝acme.sh腳本之前,需要提前安裝必備軟件包。不然會有提示"It is recommended to install socat first"等錯誤信息提示。

必備軟件包安裝執行命令:

apt-get update && apt-get install curl -y && apt-get install cron -y && apt-get install socat -y

CentOS用yum install socat安裝必備軟件包。

安裝 acme.sh

執行以下命令:

curl  https://get.acme.sh | sh

安裝成功后執行 以下命令,.bashrc需要用ls -a才能看到,以確保腳本所設置的命令別名生效:

source ~/.bashrc

執行成功后不會有回應,如果安裝報錯,那么可能是因為系統缺少 acme.sh 所需要的依賴項,acme.sh 的依賴項主要是 netcat(nc),我們通過以下命令來安裝這些依賴項,然后重新安裝一遍 acme.sh:(注:debian9在安裝過程中沒有報錯,所以這步不需要執行)

apt-get -y install netcat

以下的命令會臨時監聽 80 端口,而80端口被Ngnix服務占用,所以要暫停Ngnix服務:

systemctl stop nginx 
###或者
/usr/local/nginx/sbin/nginx -s stop

生成證書

注意:腳本中的域名mydomain.me改成自己的

~/.acme.sh/acme.sh --issue -d mydomain.me --standalone -k ec-256

安裝成功后提示生成的秘鑰證書的路徑,證書路徑是自動生成的。

如果出現No valid IP addresses,說明這個域名未被使用,要先將域名綁定IP。

如果出現Create new order error. Le_OrderFinalize not found,則說明失敗太多次,要一小時后再試。

Invalid response from說明域名綁定的並不是本機IP。

Error getting validation data,獲取不到驗證數據是因為防火牆沒關。

安裝證書和密鑰(ECC和RSA二選一)

ECC優點:同等長度 ECC 比 RSA 更安全 ECC缺點:兼容性會差一些

只要設備不是非常老的老古董,建議使用 ECC 證書。

ECC 證書將證書和密鑰安裝到 /etc/crt 中執行:(注意:腳本中的域名改成自己的/etc/crt路徑可以自己制定)

$ sudo ~/.acme.sh/acme.sh --installcert -d mydomain.me --fullchainpath /etc/crt/autumn.crt --keypath /etc/crt/autumn.key --ecc

RSA 證書執行:(/etc/crt路徑可以自己制定

$ sudo ~/.acme.sh/acme.sh --installcert -d mydomain.me --fullchainpath /etc/crt/autumn.crt --keypath /etc/crt/autumn.key

注意:無論什么情況,密鑰(即上面的.key)都不能泄漏,如果你不幸泄漏了密鑰,可以使用 acme.sh 將原證書吊銷,再生成新的證書,吊銷方法請自行參考 acme.sh 的手冊。

安裝成功如下圖:

證書更新(腳本自動)

由於 Let's Encrypt 的證書有效期只有 3 個月,因此需要 90 天至少要更新一次證書,acme.sh 腳本會每 60 天自動更新證書。所以這步不需要做。(但如果你不放心,也把手動更新的指令提供一下,供參考。)

手動更新 ECC 證書,執行:

~/.acme.sh/acme.sh --renew -d mydomain.com --force --ecc

如果是 RSA 證書則執行:

sudo ~/.acme.sh/acme.sh --renew -d mydomain.com --force


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM