越来越多的网站开始部署HTTPS加密连接了,不过在部署过程中难免与遇到这样或那样的问题导致无法连接。
例如鸭子哥在配置蓝点网备用服务器的HTTPS证书后就发现无法连接,而Nginx启动时显示并没有什么问题。
在遇到HTTPS连接问题时首先我们需要检查SSL证书是否存在配置问题,例如证书颁发者和使用的前后顺序。
如果本身颁发者和使用者的前后顺序就是错误的那么浏览器自然会提示不可信的证书颁发者,因此需要根据浏览器的报错情况对症下药。
而鸭子哥今天遇到的是浏览器提示证书无效,但证书在主服务器上测试是没有问题的,那么剩下就是Nginx配置问题了。
首先使用以下命令检查下Nginx的版本:
[root@landian ~]:cd /usr/local/nginx/sbin <===进入Nginx安装目录
[root@landian ~]:nginx -v <===查看Nginx版本
在对比过两台服务器上的Nginx版本后发现相差还是挺大的,主备服务器使用的分别是是Nginx 1.8和1.1版。
然后对比网站的配置文件位于/usr/local/nginx/conf/vhost/中,两台服务器上的配置文件相同:
server
{
listen 80; <=== 允许80端口即HTTP访问
#listen [::]:80;
listen 443; <=== 允许443端口即HTTPS访问
server_name www.landiannews.com landiannews.com;
index index.html index.htm index.php;
root /home/wwwroot/www.landiannews.com;
ssl_certificate www.landiannews.com.crt;
ssl_certificate_key www.landiannews.com.key;
location ~ //.
{
deny all;
}
}
通过搜索引起查询后得知某些Nginx版本需要将443端口放在80端口前,但修改测试时发现网站依然无法访问。
查询到的第二种是进行如下修改:
listen 443; >>> listen 443 ssl;
修改后上传覆盖配置文件并重启Nginx后发现可以正常访问了,因此错误的原因在于配置文件的代码写错了。
但主服务器的版本要高于备用服务器的Nginx版本,listen 443这种写法是支持新版本而不支持老版本的。
所以如果再遇到这类问题首先要检查Nginx版本,不然不同的写法有的支持有的不支持,再折腾也没戏了。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/31396.html