使用acme.sh免费申请ssl证书
一、安装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
共有 0 条评论