欢迎您, 来到 宁时修博客.^_^

nginx实现https网站设置

2018/08/17 宁时修 php,Nginx,https 628
nginx实现https网站设置
  1. 简单阐述下https和http区别

    https是用通过SSL加密的。 这样你的电脑与服务器之间收发的信息传输将更加安全。Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的,...HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全。如图:

    1.jpg

  2. 申请免费的https ssl证书

    点击申请免费的ssl证书:https://freessl.cn/

    如果点击不了,请直接复制。

    进入上述的网站,点击创建免费的ssl证书,根据提示一直下一步即可。申请并且验证成功后,下载证书到本地。下载的压缩包里面分别有公钥文件full_chain.pem 和 私钥privte.key

  3. 上传公钥和私钥文件到自己的服务器

    在服务器随意创建一个目录来保存 full_chain.pem  privte.key。一般来讲最好是在nginx目录里面创建一个子目录,这样比较利于管理。比如/usr/local/nginx 那么你就可以把文件放入 /usr/local/nginx/ssl (注:该目录只是一个目的只是存放文件而已)

  4. 配置Nginx.conf

  5. server {
      listen       443;
      server_name  www.mgchen.com mgchen.com;
      #配置SSL
      ssl on;
      ssl_certificate  /usr/local/nginx/ssl/full_chain.pem; #修改你的公钥证书的名字
      ssl_certificate_key /usr/local/nginx/ssl/private.key; #修改成你的私钥证书的名字
      ssl_session_timeout 5m;
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on;
      #设置网站根目录
      root   /www/mgchen;
      index  index.php index.html index.htm;
      #设置编码
      charset utf-8;
      #配置伪静态
      location / {
       if (!-e $request_filename){
         rewrite ^/(.*)$ /index.php?s=/$1 last;
       }
      }
      # 访问favicon.ico和robots.txt不跳转(
      location ~ \.php$ {
        root           /www/mgchen;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
      }
      location = /favicon.ico {
        access_log off;
      }
      #设置40系列错误的应答文件为40x.html
      error_page  400 401 402 403 404  /40x.html;
      location = /40x.html {
        root   html;
        index  index.html index.htm;
      }
      
      #设置50系列错误的应答文件为50x.html
      error_page   500 501 502 503 504  /50x.html;
      location = /50x.html {
        root   html;
        index  index.html index.htm;
      }
    }
    
    #强制跳转到https
    server {
      listen 80;
        server_name www.mgchen.com mgchen.com; #修改成你的域名
        rewrite ^(.*)$ https://$host$1 permanent;
      }
    }
  6. 重启Nginx,重启成功后,如果发现你的https是灰色状态而不是绿色的安全状态,不用慌,你只需把你项目的资源文件替换成绝对路径就行,也就是前面加上https://www.mgchen.com/home/1.png类似于这样。需要把所有的css,js,img全部替换到绝对的路径,记住是所有,所有,所有。重要的事情说三遍

点赞
说说你的看法

所有评论: (1)

# 加入组织

1、用手机QQ扫左侧二维码

2、搜Q群:1058582137

3、点击 宁时修博客交流群