acme.sh工具免費申請ssl證書(standalone模式)----實踐版

1、安裝acme.sh

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

 

2、獲取 Let’s Encrypt 證書

acme.sh --issue --standalone -d example.com # example.com是你要申請證書的域名

如果報錯acme.sh命令不存在,執行source ~/.bashrc命令試試

一般是acme.sh是安裝在~目錄下的.acme.sh文件夾中,可能會提示你沒有安裝socat,yum install socat真能裝一下即可,如果不是root用戶,則:

sudo ~/.acme.sh/acme.sh --issue --standalone -d example.com

運行成功後會提示你的證書在哪個目錄下,我的是提示在root/.acme.sh/example.com/example.com.key

3、安裝acme.sh證書

 

官方:

acme.sh  --installcert  -d  www.jiangyong.org \
--key-file /etc/nginx/ssl/www.jiangyong.org.key \
--fullchain-file /etc/nginx/ssl/www.jiangyong.org.cer \
--reloadcmd "service nginx force-reload"

我的:

sudo ~/.acme.sh/acme.sh --installcert -d example.com \
--keypath  /your/path/example.com.key  \
--fullchainpath /your/path/example.com..cer 

這裏加不直接寫acme.sh,而寫成sudo ~/.acme.sh/acme.sh是有原因的,因爲我裝的acme.sh不是root權限寫裝的,所以生成的證書就不在安裝的按個目錄,而是在root下的一個目錄下,所以這樣寫才能將真正的證書安裝到你所需要的目錄。

注意:

因爲acme.sh腳本默認使用的80端口,所有當在申請證書的時候請確保80端口沒有被佔用,並且防火牆開放了80端口。

參考文章:https://deepzz.com/post/acmesh-letsencrypt-cert-auto-renew.html

新增經驗(2019/08/13):

https://github.com/Neilpang/acme.sh

如果你是最新下載安裝acme.sh的話,可能會碰到以下問題:

~/.acme.sh/acme.sh --issue --standalone -d example.com執行此命令可能會報錯需要安裝socat,然後你用socat安裝之後再次執行,可能會報錯:

說明你的權限還不夠,需要root權限,此時你就會聰明的在命令前面加上sudo,然而你會發現下面的奇葩報錯:

然後你就會去訪問這個網址:https://github.com/Neilpang/acme.sh/wiki/sudo,它就會告訴你不要用sudo。此刻,只有一個解決辦法,那就是登陸root用戶再運行上面的命令,是的,然後你就成功了!

最近似乎新增了一個方法就是在命令最後加上--force,就可成功!

主要是因爲acme.sh腳本的作者修改了原來的腳本,加了判斷,有興趣和時間的可以研究一下作者爲啥要這麼幹,除了登陸root用戶是否還有其他解決辦法。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章