Shell脚本一键快速申请Let’s encrypt免费证书

正文概述 云码哥   2022-11-27   593

今天用宝塔续签证书失败了,报错误:“SSL证书安装失败:验证失败,域名解析错误或验证URL无法被访问!”,什么鬼东西,没办法只有放弃宝塔自动续签了。

下载到本地

wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh
chmod +x letsencrypt.sh

配置文件

编辑conf配置文件,只需要修改 DOMAIN_KEY DOMAIN_DIR DOMAINS 为你自己的信息,将loowp.com替换为你自己的域名,whatever可以是www或其它二级域名,DOMAIN_DIR是你域名绑定网站的根目录。

ACCOUNT_KEY="letsencrypt-account.key"
DOMAIN_KEY="loowp.com.key"
DOMAIN_DIR="/var/www/loowp.com"
DOMAINS="DNS:loowp.com,DNS:whatever.loowp.com"
#ECC=TRUE
#LIGHTTPD=TRUE

执行过程中会自动生成需要的 key 文件。其中 ACCOUNT_KEY 为账户密钥, DOMAIN_KEY 为域名私钥, DOMAIN_DIR 为域名指向的目录,DOMAINS 为要签的域名列表, 需要 ECC 证书时取消 #ECC=TRUE 的注释,需要为 lighttpd 生成 pem 文件时,取消 #LIGHTTPD=TRUE 的注释。

运行

./letsencrypt.sh letsencrypt.conf

注意

需要已经绑定域名到 /var/www/example.com 目录,即通过 http://example.com http://whatever.example.com 可以访问到 /var/www/example.com 目录,用于域名的验证

将会生成如下几个文件

lets-encrypt-x1-cross-signed.pem
loowp.chained.crt          # 即网上搜索教程里常见的 fullchain.pem
loowp.com.key              # 即网上搜索教程里常见的 privkey.pem 
loowp.crt
loowp.csr

在 nginx 里添加 ssl 相关的配置

也可以直接将loowp.chained.crt和loowp.com.key内容分别直接复制到宝塔设置证书的框框里面

ssl_certificate     /path/to/cert/example.chained.crt;
ssl_certificate_key /path/to/cert/example.com.key;

cron 定时任务

每个月自动更新一次证书,可以在脚本最后加入 service nginx reload等重新加载服务。

0 0 1 * * /etc/nginx/certs/letsencrypt.sh /etc/nginx/certs/letsencrypt.conf >> /var/log/lets-encrypt.log 2>&1
本站大部分资源收集于网络以及网友投稿,本不保证资源的完整性以及安全性,请下载后自行测试。
本站资源仅供下载者学习技术,版权归资源原作者所有,请在下载后24小时之内自觉删除。
本站资源仅供下载者学习IT编程开发技术,请遵守国家法律法规,严禁用于非法用途。
若作商业用途,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
如您是版权方,本站源码有侵犯到您的权益,请邮件联系331752841@qq.com 删除,我们将及时处理!

发表评论