Nginx配置https证书遇到的一个问题 |
您所在的位置:网站首页 › ssl证书自动续期是什么 › Nginx配置https证书遇到的一个问题 |
前言
今天在给一个站点配置 HTTPS 证书的时候,遇到了一个问题,写此文章记录一下解决过程。 环境Ubuntu 22.04 Nginx 1.18 过程今天给一个站点申请了 HTTPS 证书,然后在 Nginx 中进行配置,Nginx 的 SSL 配置如下: listen 443; ssl_certificate /etc/nginx/ssl/mysite.cer; ssl_certificate_key /etc/nginx/ssl/mysite.key;配置完后,访问网站报错“ERR_SSL_PROTOCOL_ERROR”,如下图: 一开始以为是证书有问题,检查了一番没有头绪,最后发现是 Nginx 的配置写错了: listen 443 ssl; #listen [::]:443 ssl; ssl_certificate /etc/nginx/ssl/mysite.cer; ssl_certificate_key /etc/nginx/ssl/mysite.key;第一行listen 443 ssl 的 ssl 漏写了,后果就是,Nginx 虽然监听了443端口,但是并没有在此端口上启用SSL模块,也就是说,工作模式是跟80端口一样的,所以浏览器发送过来的加密数据Nginx无法识别,最终导致在 access.log 中看到了乱码的数据。 其它在旧版的 Nginx 中,开启SSL模块有一个专属指令,如下图所示: 细心的人可能还会发现有一行注释的配置:listen [::]:443 ssl 这句配置的意思是:在 ipv6 地址上监听443端口,而listen 443 ssl只在 ipv4 地址上监听,如果需要支持ipv6,可以将注释去掉。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |