下载certbot
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx
查看certbot版本
certbot --version
申请 HTTPS 证书
sudo certbot certonly -d "*.example.com" -d example.com --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
- certonly 安装模式
- -d 申请证书的域名,如果是通配符域名输入 *.example.com
- –manual 手动安装插件
- –preferred-challenges dns 使用 DNS 方式校验域名所有权
- –server,Let’s Encrypt ACME v2 版本使用的服务器不同于 v1 版本,需要显示指定
第一次执行完命令之后会提示需要输入邮箱,和一些协议需要同意和确认,然后每次运行此命令需要记录 IP 信息,需要同意不然不能继续申请
设置DNS TXT记录
需要在个人的域名供应商那进行dns域名解析,新增一个txt记录,将主机记录和记录值填上,线路类型一般默认,TTL默认一般设置600s,保存等待一小段时间即可。
ps:TTL为缓存的生存时间,默认最常用的 600 秒。指地方dns缓存您域名记录信息的时间,缓存失效后会再次到DNSPod获取记录值。
保存之后需要验证是否解析成功,验证方法见下方,验证成功之后,回车等待申请成功
如果是这样的就是证书申请成功了,然后在服务器上配置一下就可以了
验证DNS TXT 记录
nslookup -q=txt _acme-challenge.example.com
查看证书有效期
sudo openssl x509 -noout -dates -in /etc/letsencrypt/live/moneystar.top/cert.pem
证书目录:/etc/letsencrypt/live/example.com
ls /etc/letsencrypt/live/example.com
cert.pem chain.pem fullchain.pem privkey.pem README
自动续订
创建续订证书脚本
touch {自己服务器的目录绝对路径}/sslrenew.sh
编辑脚本
vim {自己服务器的目录绝对路径}/sslrenew.sh
脚本内容
sudo certbot renew
设置脚本可执行
chmod +x {自己服务器的目录绝对路径}/sslrenew.sh
编辑定时任务,每月1号执行续订操作
crontab -e
添加定时逻辑
0 0 1 * * {自己服务器的目录绝对路径}/sslrenew.sh
重新加载定时任务
service crond reload
查看定时任务列表
crontab -l
配置nginx
方法一:
在/etc/nginx目录下
sudo touch ssl.conf
sudo vim ssl.conf
添加如下两行
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
随后在单独的文件中配置nginx
server {
listen 443 ssl;
server_name localhost;
include ssl.conf;
location / {
root html;
index index.html index.htm;
}
ssl on;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
}
方法二:
直接在单独的文件中配置nginx
server {
listen 443 ssl;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
ssl on;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/letsencrypt/live/example.com/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}
作者公众号