一、前言

  • 什么是HTTPS以及什么是SSL?

HTTPS全称是:超文本安全传输协议,可以简单理解为使用SSL加密传输的HTTP协议,HTTP的默认端口是80,HTTPS的默认端口是443。SSL是为网络通信提供安全及数据完整性的一种安全协议。http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

  • 为什么要使用HTTPS

为了保护信息传输的安全性,数据完整性。让访客觉得网站可信任,对于国内的网络环境,也可以防止宽带运营商强制给网站挂广告。

二、操作步骤

  • 1、申请免费SSL证书

https://console.qcloud.com/ssl?apply=1&fromSource=ssl

目前腾讯云有免费的SSL证书申请入口,而且发放速度极快,尤其是放在DNSPOD解析的域名。

  • 2、Nginx配置示例

(1) Nginx配置SSL

server {
    listen 443;          #监听443端口
    server_name  baidu.io;    #监听的域名
    ssl on; #开启SSL
    ssl_certificate     /webroot/ssl/ken.io.crt;    #证书文件
    ssl_certificate_key /webroot/ssl/ken.io.key;    #私钥文件
    location / {                #转发或处理
        proxy_pass http://www.baidu.com;
    }
}

(2)Nginx将HTTP请求301重定向到HTTPS

server {
    listen 80;        #监听80端口
    server_name  baidu.io www.baidu.io; #监听的域名
    return 301 https://baidu.io$request_uri;
}

三、备注

如果升级到HTTPS之后,浏览器提示您与此网站之间建立的连接并非完全安全,那应该是站点引用了非HTTPS站点的资源。这个时候有以下几种方法:

序号 方法
1 将公共静态资源选择引用公共CDN,比如:http://www.bootcdn.cn/
2 将自定义的css、图片等静态资源放在七牛云或者又拍云
3 将自定义的css、图片等静态资源放在站点下(不推荐)