首页 » 心得 » 【实践】Nginx如何配置免费let's encrypt 证书并自动续期

【实践】Nginx如何配置免费let's encrypt 证书并自动续期

@wayne -

可能是之前太土豪, 证书都用的收费的。
偶尔有些小项目,也都是宝塔自动申请。
但是总是这样子并不似长久之计啊~
所以研究了下,原来这么简单...

准备工作:

  • 1.安装nginx
  • 2.nginx中conf配置好域名
  • 3.开放web端口:443及80
  • 4.防火墙 setenforce 0

安装

安装snapd.(centos7 为例)

$ sudo yum install epel-release
$ sudo yum install snapd
$ sudo systemctl enable --now snapd.socket
$ sudo ln -s /var/lib/snapd/snap /snap

更新snapd

$ sudo snap install core
$ sudo snap refresh core

安装 Certbot

$ sudo snap install --classic certbot

准备 Certbot 命令

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

运行Cerbot并选择安装证书

$ sudo certbot certonly --nginx

测试自动续订

sudo certbot renew --dry-run

更新 certbot 的命令安装在以下位置之一:

  • /etc/crontab/
  • /etc/cron./
  • systemctl list-timers

Nginx 添加配置

#强制跳转
rewrite ^(.*)$ https://$host$1;

listen       443 ssl http2;
    server_name  domain;
    ssl_certificate /etc/letsencrypt/live/domain/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
2
0
Comments | 0 条评论
391
  • 感谢打赏
    微信扫一扫 分享朋友圈