1,证书安装详见https://www.cnblogs.com/tinywan/p/8573169.html
2,certbot-auto的参数说明:
run:获取并安装证书到当前的Web服务器
certonly:获取或续期证书,但是不安装
renew:在证书快过期时,续期之前获取的所有证书
-d DOMAINS:一个证书支持多个域名,用逗号分隔
--apache:使用 Apache 插件来认证和安装证书
--standalone:运行独立的 web server 来验证
--nginx:使用 Nginx 插件来认证和安装证书
--webroot:如果目标服务器已经有 web server 运行且不能关闭,可以通过往服务器的网站根目录放置文件的方式来验证
--manual:通过交互式方式,或 Shell 脚本手动获取证书
3,最重要的一句话:
sudo./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d*.duoduobird.com --manual --preferred-challenges dns-01 certonly
dns-01参数说明:
在申请Let’s Encrypt证书的时候,官方需要校验域名的所有权,证明域名是你的,你才可以申请证书,目前支持三种验证方式:
üdns-01:给域名添加一个 DNS TXT 记录。
ühttp-01:在域名对应的 Web 服务器下放置一个 HTTP well-known URL 资源文件。
ütls-sni-01:在域名对应的 Web 服务器下放置一个 HTTPS well-known URL 资源文件。
申请通配符(*.duoduobird.com)证书,只能使用 dns-01 的方式。
使用letsencrypt-auto生成也是一样的。
4,Nginx使用SSL的时候,要安装SSL模块,后面我会写Nginx的安装文档。
5,证书自动续期
定时任务:
>>crontab -e(crontab -l查看centos定时任务,servicecrond status查看定时任务状态,脚本我测试过,有效)
# Lets Encrypt certificate update
#每1,3,5,7,9,11月15日4点10分执行定时任务
10 4 15 1,3,5,7,9,11 * /bin/sh /opt/eff.org/renewCerts.sh
renewCerts.sh文件的内容
#!/bin/sh
#获取新证书
/opt/eff.org/certbot-auto renew
#证书有多处使用,复制到要使用的目录,我的gitlab也是用这个证书
# gitlab使用Let'sEncrypt证书的配置,在我写的《Gitlab私服搭建》中有#讲。
cp -f /etc/letsencrypt/live/duoduobird.com/fullchain.pem/home/gitlab/config/ssl/
cp -f /etc/letsencrypt/live/duoduobird.com/privkey.pem/home/gitlab/config/ssl/
#重启nginx
service nginx restart
#重启gitlab docker镜像
docker restart gitlab
注意:#!/bin/bash 和 #!/bin/sh的区别,这里的shell脚本用#!/bin/sh比较合理些,#!/bin/sh执行出错的时候,就不再往下执行,这正是我要的效果。
领取专属 10元无门槛券
私享最新 技术干货