首页   >   代码编程

nginx配置ssl证书之后访问不了80端口

nginx在配置了https之后,竟然访问不了80端口了,也就是说可以通过https访问,不能通过http访问了。

具体现象是访问错乱

如果你的nginx只映射了一个域名,现象就是:访问到了nginx的index.html;

如果你的nginx映射了很多个域名,现象就是:访问到了另外的网站首页;

我的nginx由于配置了多个域名,所以就出现了第二种现象,我访问积微成著的时候,就跳到了另外的一个网站

[root@VM_41_196_centos nginx]# cd conf.d
[root@VM_41_196_centos conf.d]# ll
total 12
-rw-r--r-- 1 root root 1384 Mar  5 15:25 jwcz.conf
-rw-r--r-- 1 root root  544 Mar  4 11:35 reader.conf
-rw-r--r-- 1 root root  428 Nov 14  2017 svn.conf

好了,说完现象,现在我们直接来排查原因,找寻解决方案。

检查了一下之前写的conf文件,发现确实没有监听80端口了

server {
    listen 443 ssl;
    server_name www.jiweichengzhu.com;
    ssl on;
    ssl_certificate ../cert/1_www.jiweichengzhu.com_bundle.crt;
    ssl_certificate_key ../cert/2_www.jiweichengzhu.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {
        ...... 
    }
}

在没有做转发的时候,无法强制用户直接使用https,这样体验就很不好,用户不知道的情况下,还以为网站挂了。

两种解决方案:

1、增加rewrite机制,强制跳转到https;

2、启动80端口的监听;

本文选择后者来给大家做教程演示,直接监听80端口

server {
    listen 443 ssl;
    listen 80;
    server_name www.jiweichengzhu.com;
    ssl on;
    ssl_certificate ../cert/1_www.jiweichengzhu.com_bundle.crt;
    ssl_certificate_key ../cert/2_www.jiweichengzhu.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {
        ...... 
    }
}

加上之后,变得更糟糕了,直接400错误

nginx配置ssl证书之后访问不了80端口

这可不得了,一番查阅之后,发现是因为ssl on的缘故,同时监听443和80端口,必须关闭ssl开关

server {
    listen 443 ssl;
    listen 80;
    server_name www.jiweichengzhu.com;
#    ssl on;
    ssl_certificate ../cert/1_www.jiweichengzhu.com_bundle.crt;
    ssl_certificate_key ../cert/2_www.jiweichengzhu.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {
        ...... 
    }
}

再次重启,问题得到解决!!!

如果还不会在linux下安装nginx,请移步:linux环境下nginx1.13.6二进制方式安装教程

如果还不会配置nginx的ssl证书,请移步:nginx配置腾讯云ssl证书图文教程

QQ群Ⅰ: 686430774 (已满)

QQ群Ⅱ: 718410762 (已满)

QQ群Ⅲ: 638620451 (已满)

QQ群Ⅳ: 474195684

如果文章有帮到你,可以考虑请博主喝杯咖啡!

分享到:

欢迎分享本文,转载请注明出处!

作者:不忘初心

发布时间:2019-03-05

永久地址:https://www.jiweichengzhu.com/article/49c3da70aaed44c9b0ee5f01d51a5b58

评论