使用acme.sh免费申请ssl证书

%title插图%num

一、安装acme.sh

curl  https://get.acme.sh | sh -s email=my@example.com

二、dns解析你自己的域名。需要在域名购买商那解析dns为你的vps地址,否则申请证书会失败。

三、acme申请证书,申请证书一般有2种验证方式:http和dns验证。

1、http验证方式又分为几种方式:

1)通过网站根目录方式, /home/wwwroot/mydomain.com/ 为你网站的存放目录:

acme.sh  --issue  -d mydomain.com  --webroot  /home/wwwroot/mydomain.com/

如果是用apache或者nginx服务器,还可以通过下面的命令来申请:


acme.sh --issue  -d mydomain.com   --apache
acme.sh --issue  -d mydomain.com   --nginx

2)通过独立方式验证申请,此方法需要占用80端口,需要服务器上的80端口未被占用,并且允许访问。申请前需要安装必要软件socat。

#Centos安装
yum install -y curl socat
#Debian和Ubuntu安装
apt install -y curl socat
#申请证书
acme.sh  --issue -d mydomain.com   --standalone

2、通过验证dns的方式申请,手动在域名上添加一条txt解析记录,验证域名解析。

acme.sh生成txt记录

acme.sh  --issue  --dns   -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

在你的域名管理面板中添加txt 记录。

等待解析完成之后生成证书,一般等待几分钟dns就会生效,注意这一步比第一步多一个–renew参数

acme.sh  --renew   -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

四、复制和安装证书

以nginx为例来安装:

acme.sh --install-cert -d mydomain.com \
--key-file       /path/to/keyfile/in/nginx/key.pem  \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd     "service nginx force-reload"

这里用的是service nginx force-reload,不是service nginx reload,据测试,reload并不会重加载证书,所以用的force-reload。Nginx 的配置ssl_certificate使用/etc/nginx/ssl/fullchain.cer,而不是/etc/nginx/ssl/<domain>.cer,否则SSL Labs的测试会报告Chain issues Incomplete错误。

五、更新证书

现在证书在60天以后会自动更新,无需任何操作。

官方文档:https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E

版权声明:
作者:Leapteam
链接:https://blog.xwyue.com/808.html
来源:星跃博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>