如何在 Linux 上安裝和使用 acme.sh 腳本來獲得免費的 SSL 證書

在 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 的日誌文件位於 ~/.acme.sh 目錄。默認情況下不啟用日誌文件生成。 在 account.conf 文件中進行以下更改。

$ cd ~/.acme.sh $ vi account.conf

acme.sh 日誌

現在使用以下命令查找生成的日誌文件。

$ cd ~/.acme.sh $ tail -f acme.sh.log

結論

在本文中,我們學習瞭如何在 Linux 系統中安裝 acme.sh 腳本來生成 SSL 證書。 我向您展示瞭如何一次為多個域生成 SSL 證書以及如何續訂 SSL 證書。