最近自己搭建了一个博客网站,不安全我用openssl方式创建了一个免费证书,实现结果登录时显示“不安全”,免费要写hosts文件才可以,证书让用户配置不现实。网站

然后我就换成了Let’s Encrypt 免费证书,不再成功解决这个不安全的提示问题。
下面是不安全我操作的完整步骤:
1. 为什么不用自签名证书?openssl自签名证书会遇到:
浏览器仍然提示“不安全”每台客户端都需要手动信任无法自动续期opnessl的自签名证书适合用在测试或开发环境,做网站就不适用。实现所以我用 Let’s Encrypt 生成免费证书,免费浏览器完全信任,云服务器提供商证书并且可以自动续期。网站
2. 前提公网域名已备案:我的不再是www.ligelinux.com
DNS 已解析:www.ligelinux.com 和 ligelinux.com 都指向你的服务器 IP
Nginx 已安装,80 端口可访问。提示

CentOS 7.9 默认 EPEL 里的不安全 Certbot 版本较旧,如果 nginx 插件不可用,可用 Webroot 模式。
4. 配置 Nginx因为我用的是CentOS7.9,没有加载到nginx插件,源码库所以使用webroot方式绕过插件,需要放通80端口测试。
复制server { listen 80; # 监听 HTTP 80 端口 server_name www.ligelinux.com ligelinux.com; # 域名绑定 # Let’s Encrypt 验证路径 location /.well-known/acme-challenge/ { root /data/nginx/cert; # 指向 Webroot 临时目录 allow all; } location / { return 301 https://$host$request_uri; # 所有 HTTP 请求重定向到 HTTPS } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.创建目录并测试:
复制mkdir -p /data/nginx/cert/.well-known/acme-challenge echo "test-ok" > /data/nginx/cert/.well-known/acme-challenge/test.txt1.2.访问:
复制http://www.ligelinux.com/.well-known/acme-challenge/test.txt1.显示 test-ok 表明路径正确。
申请 Let’s Encrypt 证书:
复制certbot certonly --webroot -w /data/nginx/cert \ -d www.ligelinux.com -d ligelinux.com1.2. --webroot -w /data/nginx/cert:指定验证目录-d www.ligelinux.com -d ligelinux.com:指定需要证书的域名
证书生成后默认存放:
复制/etc/letsencrypt/live/www.ligelinux.com/fullchain.pem /etc/letsencrypt/live/www.ligelinux.com/privkey.pem1.2. 5. 配置HTTPS + 反向代理 复制server { listen 443 ssl http2; # 启用 HTTPS 和 HTTP/2 server_name www.ligelinux.com ligelinux.com; ssl_certificate /etc/letsencrypt/live/www.ligelinux.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.ligelinux.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { proxy_pass http://xxxxxx:8090; # 反向代理到后端应用,填写你的IP地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.重载 Nginx:
复制nginx -t systemctl restart nginx1.2.
然后访问一下URL,会发现已经显示安全:

Certbot 证书默认是90天过期,但提供自动续签功能:
复制sudo certbot renew --dry-run1.--dry-run 模拟续签。
可添加 Nginx 自动重载:
复制sudo certbot renew --deploy-hook "systemctl reload nginx"1.确保 .well-known/acme-challenge/ 目录保持可访问,否则续签会失败。



相关文章

精彩导读
热门资讯
关注我们
