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用户是否还有其他解决办法。

 

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