兔源码网 - 专注DZ模版分享、DZ插件分享!

 找回密码
 立即注册

只需一步,快速开始

查看: 151|回复: 0
收起左侧

Nginx下配置网站SSL实现https访问(虚拟主机)

[复制链接]
  • TA的每日心情
    萌哒
    2017-12-8 18:18
  • 1271

    主题

    1290

    帖子

    2570

    积分

    兔校长

    Rank: 9Rank: 9Rank: 9

    萝卜
    0 棵


    兔毛
    275 朵


    兔币
    17707 枚


    经验
    2570 点


    最佳新人管理/版主土豪装逼

    tuyuanma 发表于 2017-7-25 11:37:16 | 显示全部楼层 |阅读模式
    在今年的早些时候百度搜索已经全面实现https模式,并宣称已经可以抓取https网页了,相比谷歌早年就已经支持https的抓取,百度虽然晚了一点,但是毕竟现在还是有了,站长之家上也有人探讨关于https模式对百度谷歌seo的影响,虽然还没有人给出实际测试的数据,但是百度全站https模式的话或多或少也能说明百度当下对https站点的态度吧!
    1.jpg
    nginx配置SSL简洁版教程:
    一、在配置文件中开启ssl
    打开www.xxx.com.conf文件,在listen 80 代码段下面加入以下代码:
    listen 443;(注释:监听443端口)
    ssl on; (注释:开启ssl)
    ssl_certificate_key /www/wdlinux/nginx/conf/aitiancheng.key; (注释:SSL证书路径)
    ssl_certificate /www/wdlinux/nginx/conf/aitiancheng.crt;(注释:SSL证书路径)
    二、在防火墙中开启443端口访问

    提示:配置时请删除以上注释内容。
    然后切入主题讲一讲Nginx下配置网站ssl实现https模式访问的方法
    第一步:服务器环境,lnmp即Linux+Nginx+PHP+MySQL,本文中以我的博客为例,使用的是阿里云最低档的vps+免费的Linux服务器管理系统WDCP快速搭建的lnmp环境(同类产品还有amh有免费版以及收费版),具体安装以及使用方法都可以在其官方论坛找到详细的操作文档。
    第二步:创建你的网站,使用lnmp环境创建你的网站,已有网站的,确保你的程序在lnmp下能够正常的运行,以wordpress为例,lamp跟lnmp下的伪静态规则是不同的,有过更换的,要记得切换。
    第三步:申请免费的ssl证书。
    第四步:配置网站ssl,找到你需要配置ssl的网站的Nginx配置文件,以WDCP为例配置文件在/www/wdlinux/nginx/conf/vhost/目录,将以下代码添加只网站的配置文件server中,同时为了方便管理,需要将你申请的nginx下的ssl证书上传到/www/wdlinux/nginx/conf/目录,不同的管理系统或者是手动配置的lnmp环境这个目录都是不一样的,请根据你的实际情况进行调整。
    1. ssl on;
    2. ssl_certificate_key /www/wdlinux/nginx/conf/aitiancheng.key;
    3. ssl_certificate /www/wdlinux/nginx/conf/aitiancheng.crt;
    复制代码
    因为ssl访问的不是传统网站的80端口,而是443端口则需要在配置文件中继续为网站添加443端口,为了方便不知道把以上放在配置文件的什么位置的人,以下将我网站完整的配置文件贴出,可以根据你的实际情况进行修改。
    1. server {
    2. listen 80;
    3. listen 443;
    4. server_name wwwtuyuanma.com;
    5. root /www/web/blog/public_html;
    6. index  index.html index.php index.htm;
    7. error_page  400 /errpage/400.html;
    8. error_page  403 /errpage/403.html;
    9. error_page  404 /errpage/404.html;
    10. ssl on;
    11. ssl_certificate_key  /www/wdlinux/nginx/conf/aitiancheng.key;
    12. ssl_certificate  /www/wdlinux/nginx/conf/aitiancheng.crt;
    13. location ~ \.php$ {
    14. fastcgi_pass   127.0.0.1:9000;
    15. fastcgi_index  index.php;
    16. include fcgi.conf;
    17. }
    18. include rewrite/blog.conf;
    19. }
    复制代码
    确认以上都修改无误之后,重启nginx基本上这个时候你的网站就能通过ssl访问了,但是还有一些细节问题需要调整,譬如以上网站配置文件是http与https模式并存的,还需要做一个跳转,件http模式的访问全部跳转到https模式。
    第五步:网站强制访问https模式,以wordpress为例,将以下的跳转代码添加到当前网站所有使用的伪静态规则conf文件中,即可实现所有的http访问都跳转到https访问,并且是继承目录的,具体实现方法就是把http模式访问301重定向到https模式。
    1. if ($server_port = 80) {
    2. return 301 https://$server_name$request_uri;
    3. }
    4. if ($scheme = http) {
    5. return 301 https://$server_name$request_uri;
    6. }
    7. error_page 497 https://$server_name$request_uri;
    复制代码
    到这个时候,你访问你网站的某些页面的时候,以使用chrome浏览器为例,部分页面https不会显示绿色,显示的是打X或者是黄色,是因为你网站内部譬如css文件,外链图片等使用的依然是http模式,然后就是最后一步,全站https化。
    最后,你需要在wdcp后台将443端口开放。
    以上基本完成SSL证书的部署。

    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    兔源码网 ( 赣ICP备17001544号 公网安备36112102000036号 )

    QQ交流群:493651246  GMT+8, 2017-12-17 12:07
    ←站长统计工具 查看密码:tuyuanma

    兔源码DZ模板下载 站长邮箱:tuyuanma@qq.com 站长QQ:3197813386

    © 2001-2013 本站内容皆来自互联网及用户分享,如需删除请提供软著或商标证书。

         
    快速回复 返回顶部 返回列表