Centos7用Let’s encrypt certbot生成证书并自动更新

安装 certbot

yum install -y epel-release
yum install -y certbot

安装证书前

  • 安装证书前先准备个临时目录,有个 index.html
  • 配置 nginx 增加你要添加证书的 server

server{
    listen 80;
    server_name you_add_domain
    root /your/test/www/dir
    location / {
        index  index.html
    }
}

standalone 模式

有些时候我们的一些服务并没有根目录,例如一些微服务,这时候使用 --webroot 就走不通了。certbot 还有另外一种模式 --standalone,这种模式不需要指定网站根目录,他会自动启用服务器的443端口,来验证域名的归属。我们有其他服务(例如nginx)占用了443端口,就必须先停止这些服务,在证书生成完毕后,再启用。

certbot certonly --standalone -d sub.domain.com -m xxxxxx@xxx.com --agree-tos

证书生成后文件:

  • cert.pem 服务端证书
  • chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
  • fullchain.pem 包括了cert.pem和chain.pem的内容
  • privkey.pem 证书的私钥

nginx ssl 配置

# 配置一个 80 端口,并转发到 443 端口 
# 可以配置多个,也可以一个配置多个域名  用空格分割
server {
    listen 80;
    server_name example.your.domain;                    # 修改域名
    rewrite ^(.*) https://$server_name$1 permanent;     # 转发 443
}

# 配置 443 ,可以多个
server {
    listen      443 ssl;
    server_name your.domain.com;      # 修改域名
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    # 配置证书
    ssl_certificate /etc/letsencrypt/live/your.domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your.domain.com/privkey.pem;

    location / {
        # 可以是转发,指向目录等
    }
    
    location /name {# name 代表在使用该 域名时 通过该目录访问执行的地址。该示例就是 https://your.domain.com/name
        # 可以是转发,指向目录等
    }
}

查看已安装的证书

certbot certificates

删除证书

千万别删除文件夹的方式删除

certbot delete --cert-name example.com

手动续期

/usr/bin/certbot renew

自定续期

安装 cron 服务

yum -y install vixie-cron
yum -y install crontabs

启动 cron 服务

service crond start
# 开机启动
systemctl enable crond

查看 corn 位置

find / -name "cron"
/etc/selinux/targeted/active/modules/100/cron
/var/log/cron   # 这个是日志文件位置,不管它
/var/lib/docker/overlay2/755f150def933bc7d28386aa9c28db653fcc466d4a5f43f42987a8f63e75e566/diff/var/spool/cron
/var/lib/docker/overlay2/f7d173cd29f2405151201e67c6b403e03e41c632e42c53d04f6c66977eb31a67/merged/var/spool/cron
/var/spool/cron # 这里是所有的自动执行任务的 cron 文件存放位置

创建 cron 配置

crontab -e

此命令会在 /var/spool/cron 下创建 ‘root’ 命名的 root 用户定时配置文件

添加定时任务

vi /var/spool/cron/root
15 3 * * * /usr/bin/certbot renew --quiet

添加完后需要重启

service crond restart
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值