您现在的位置是:网站首页 > 代码编程 > 服务器服务器

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

不忘初心 不忘初心 2019-03-05 围观() 评论() 点赞() 服务器

简介:nginx在配置了https之后,竟然访问不了80端口了,也就是说可以通过https访问,不能通过http访问了。具体现象是访问错乱:如果你的nginx只映射了

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证书图文教程

nginxsslhttps

看完文章,有任何疑问,请加入群聊一起交流!!!

很赞哦! ()

文章评论

  • 请先说点什么
    人参与,条评论

请使用电脑浏览器访问本页面,使用手机浏览器访问本页面会导致下载文件异常!!!

雨落无影

关注上方公众号,回复关键字【下载】获取下载码

用完即删,每次下载需重新获取下载码

若出现下载不了的情况,请及时联系站长进行解决

站点信息

  • 网站程序:spring + freemarker
  • 主题模板:《今夕何夕》
  • 文章统计:篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们