Let's Encrypt免费泛域名SSL证书申请及自动续签


1、安装 acme.sh

进入服务器,执行命令:

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

普通用户和root用户都可以安装使用,安装脚本其实是进行了如下操作:1)会把 acme.sh 安装到你所执行命令用户的用户目录下: ~/.acme.sh/2)会创建 bash alias,方便你的使用:alias > acme.sh=~/.acme.sh/acme.sh3)会自动为你创建 cronjob 脚本,每天零点自动检测所有的证书,如果某证书快过期需要更新,则会自动更新该证书。

安装过程不会污染已有的系统任何功能和文件,所有后续的修改都将限制在安装目录中:~/.acme.sh/

2、验证域名并生成证书

acme.sh 实现了 acme 协议支持的所有验证协议,通常一般有几种方式验证域名:HTTP文件验证DNS验证 等,具体验证方式可查阅脚本github文档

方式1、HTTP文件验证:

$ acme.sh --issue -d qq.com -d *.qq.com -w /home/webroot

注意:对于通配符证书需要加 -d 域名 -d *.域名 两个参数-w 即webroot,为该 域名 通过http所访问到的本地目录上面这段过程将会在 /home/webroot 创建一个 .well-known 的文件夹,同时 Let’s Encrypt 将会通过你要注册的域名去访问那个文件来确定权限,它可能会去访问 http://qq.com/.well-known/ 这个路径,验证成功会自动清理。

方式2、DNS-API验证:‌ ‌通过DNS服务器提供 keysecret 实现自动验证,详情‌ ‌https://github.com/Neilpang/acme.sh/tree/master/dnsapi‌ ‌例如,在腾讯云解析的域名,请前往 https://www.dnspod.cn/console/user/security 控制台中申请子账号 API Token 并执行命令:

$ export DP_Id="6*ID*0" $ export DP_Key="aa445e***TOKEN***5fe26e"
$ acme.sh --issue -d qq.com -d *.qq.com --dns dns_dp

注意:对于通配符证书需要加 -d 域名 -d *.域名 两个参数DP_Id DP_Key 将会保存在 ~/.acme.sh/account.conf

执行上述命令后,证书文件将会自动申请被存放在 ~/.acme.sh/ 对应的域名文件夹中,如:~/.acme.sh/qq.com 。后续 acme.sh 将会自动更新该文件夹内的证书。

3、部署nginx

参考:https://github.com/Neilpang/acme.sh/wiki/说明

1) 拷贝证书

$ acme.sh --install-cert -d qq.com \ --key-file /etc/nginx/ssl/qq.com.key \ --fullchain-file /etc/nginx/ssl/qq.com.cer \ --reloadcmd 'service nginx force-reload'

注意:通过该命令可将 ~/.acme.sh/qq.com 内的证书copy到指定位置/etc/nginx 为nginx服务器实际的地址(可修改为自己服务器对应的地址)service nginx force-reload 为nginx重启命令(可修改为自己服务器对应的命令),force-reload 会重载证书后续 acme.sh 签发了新证书后就自动完成该拷贝过程

2) 配置nginx

Nginx-Conf‌ ‌vim /etc/nginx/conf.d/qq.com.conf

# http(80) -> https(443/ssl) server { listen 80; server_name qq.com; rewrite ^(.*)$ https://$host$request_uri; } # qq.com server { listen 443; server_name qq.com; include ssl/qq.com.ssl.conf; location / { # todo } }

SSL-Conf‌ ‌vim /etc/nginx/ssl/qq.com.ssl.conf

ssl on;
ssl_certificate ssl/qq.com.cer; ssl_certificate_key ssl/qq.com.key;














参考地址 https://cloud.tencent.com/developer/article/1500063




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM