我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

书接上文,苏南大叔利用宝塔面板,给网站添加了https证书并顺利启用。那么这么方便的功能背后,nginx的相关配置都做了什么样的修改呢?本篇文章就说说https的相关nginx设置。

苏南大叔:nginx如何配置ssl证书,启用https? - https
nginx如何配置ssl证书,启用https?(图1-1)

配置信息

以苏南大叔的博客为例,先公布答案:

server{
    listen 80;
    listen 443 ssl;
    #你的配置
    ssl_certificate    /etc/letsencrypt/live/newsn.net/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/newsn.net/privkey.pem;
    if ($server_port !~ 443){
        rewrite ^/.*$ https://$host$request_uri permanent;
    }
    error_page 497  https://$host$request_uri;
    #你的配置
}

自动https

其中,下面这句话就是把http的请求,转移成https请求的。

if ($server_port !~ 443){
    rewrite ^/.*$ https://$host$request_uri permanent;
}

这段自动跳转https的存在意义,有待考量。例如苏南大叔的统计相关代码,就是要求能够正常工作在httphttps两个地方的,这种情况下,如果启用这段代码,就可能会有问题。

并且,https网站是不能加载http的js内容的,页面会有警告信息显示。http的网站是可以加载https的js的。启用https的时候,对于协作类的相关内容以及js,就可能具有考量的必要。总的原则上来说:httpshttp网站都是可以加载https的js的。但是实际的生产环境中,请具体问题具体分析。

配置信息

下面贴出的是,实际工作中使用的sslnginx配置。仅供参考。

server{
    #你的配置
    ssl_certificate    /etc/ssl/your.domain/fullchain.pem;
    ssl_certificate_key    /etc/ssl/your.domain/privkey.pem;
    ssl_session_timeout  5m;
    ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;
    if ($ssl_protocol = "") {
        rewrite ^/(.*) https://$server_name/$1 permanent;
    }
    #你的配置
}

总结

如果您想获取更多苏南大叔提供的有关https的内容,请点击这里:https://newsn.net/tag/https/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   nginx    https