在 Linux 中有一些流行的生成 SSL 和 TLS 證書的方法。 頒發 SSL 證書最流行的方法之一是 Let’s encrypt,它是提供免費 SSL 證書的證書頒發機構。 有一種更簡單的方法來頒發證書,它不需要任何依賴項和要求。 用 Shell 編寫的 acme.sh 腳本可以很容易地在 Linux 系統中生成和安裝 SSL 證書。 在本文中,我們將學習如何在 Linux 系統中安裝 acme.sh 腳本以及如何使用它來生成和安裝 SSL 證書。
acme.sh 安裝
acme.sh 的安裝是一個簡單直接的過程。 請按照以下步驟安裝應用程序。
方法一:使用 curl 命令
$ curl https://get.acme.sh | 噓
方法二:使用git倉庫
$ git clone https://github.com/acmesh-official/acme.sh.git $ cd ./acme.sh $ ./acme.sh –install
安裝完成後,運行以下命令進行驗證。
$ acme.sh –version
輸出:
生成 SSL 證書
使用 acme.sh 生成 SSL 證書是一個非常簡單的過程。 按照以下步驟生成證書。
使用 webroot 模式為單個域生成證書。
$ acme.sh –issue -d vitux.com -w /home/wwwroot/vitux.com
在同一個證書中為多個域生成一個證書
$ acme.sh –issue -d vitux.com -d www.vitux.com -d example.vitux.com -w /home/wwwroot/vitux.com
在哪裡,
/home/wwwroot/vitux.com 是託管網站文件的 webroot 文件夾。 請記住授予對 webroot 文件夾的寫訪問權限。
vitux.com 是我用來生成 SSL 證書的域名。 您可以相應地選擇您的域名。
所有的域名都應該指向同一個 webroot 目錄。
生成的 SSL 證書將位於目錄 ~/.acme.sh/
其中 domain-name 是在生成證書時使用您的域創建的目錄。
使用獨立服務器頒發證書
使用以下命令使用獨立服務器生成 SSL 證書。
對於單域
$ acme.sh –issue –standalone -d vitux.com
對於多域
$ acme.sh –issue –standalone -d vitux.com -d www.vitux.com -d example.vitux.com
偵聽 TCP 端口 80 需要 Sudo 或 root 用戶權限。端口 80 必須可以在服務器上自由偵聽。
使用獨立的 SSL 服務器生成 SSL 證書
使用以下命令使用獨立 SSL 服務器生成 SSL 證書。 在這 example,我使用了 linuxways.com 域進行演示。 在生成證書時考慮您自己的域名。
$ acme.sh –issue –alpn -d vitux.com -d www.vitux.com -d example.vitux.com
監聽TCP 443端口需要sudo或者root用戶權限,另外記得要釋放要監聽的443端口,否則會出現釋放的提示。
使用apache模式生成證書
推薦使用webroot模式生成運行web服務器的ssl證書。 如果 apache 被用作網絡服務器,那麼 Apache 模式可用於頒發證書。 此模式不會將任何文件寫入 webroot 目錄。
此模式需要與 Apache 網絡服務器,所以你需要有 root/sudo 特權。
$ acme.sh –issue –apache -d vitux.com www.vitux.com
上述命令將僅生成證書文件。 安裝證書需要指向apache配置文件中的證書文件目錄。
使用nginx方式頒發證書
特別是,如果您使用 nginx 作為 Web 服務器,則可以使用 nginx 模式代替 webroot 模式。 所有你需要的是 root/sudo 特權,因為這與 nginx Web 服務器交互。 此模式不會在 webroot 目錄中寫入任何文件。
$ acme.sh –issue –nginx -d vitux.com www.vitux.com
上面的命令只會生成證書。 需要指向nginx配置文件中的證書文件目錄進行安裝。
為通配符域頒發證書
為通配符域生成證書很容易。 在 -d 參數的位置,使用通配符域作為:
$ acme.sh –issue -d vitux.com -d *.vitux.com –dns dns_cf
–dns 參數指定您使用的 DNS 主機,dns_cf 代表 cloudflare。
更新 Let’s Encrypt 帶有 acme.sh 的 SSL 證書
在 acme.sh 安裝期間,它會創建一個 cronjob,每 60 天更新一次 SSL 證書。 因此您無需手動更新證書。 但是,您可以更新證書 力量 選項為:
$ acme.sh –renew -d vitux.com –force
要查找 cron 作業,請運行以下命令。
$ crontab -l
日誌文件目錄
acme.sh 的日誌文件位於 ~/.acme.sh 目錄。默認情況下不啟用日誌文件生成。 在 account.conf 文件中進行以下更改。
$ cd ~/.acme.sh $ vi account.conf
現在使用以下命令查找生成的日誌文件。
$ cd ~/.acme.sh $ tail -f acme.sh.log
結論
在本文中,我們學習瞭如何在 Linux 系統中安裝 acme.sh 腳本來生成 SSL 證書。 我向您展示瞭如何一次為多個域生成 SSL 證書以及如何續訂 SSL 證書。