网站通信协议升级到HTTPS&HTTP2
为何要升级到HTTPS和HTTP2?
http://baijiahao.baidu.com/s?id=1602041305989767011&wfr=spider&for=pc
https://www.jianshu.com/p/67c541a421f9
https://segmentfault.com/a/1190000019891825
HTTPS
一、所需条件
- 域名
- Web服务器(Nginx,Apache,IIS都行)
- SSL证书(可通过腾讯云、阿里云等申请)
- 需要Nginx支持SSL(命令nginx -V中,如果出现 ‘-with-http_ssl_module’ 字样即可)
二、操作步骤
- 登录阿里云购买免费SSL证书并申请
- 下载证书,上传至服务器
- Nginx配置HTTPS服务
- 重定向
- 重启Nginx服务
- 将html中所有的外链资源(如img,css,js,媒体标签等)url置为https
三、具体操作
1.登录阿里云购买免费SSL证书(https://www.aliyun.com/product/cas?utm_content=se_1001656059)
阿里云免费型DV SSL有效期1年,购买后填写一些信息,提交申请,即可等待签发。在这里表扬一下阿里云,秒速签发。
在这里讲一下,域名验证类型可选择自动DNS、手动DNS和文件验证,在这里我选择的是自动的;CSR生成方式选择系统生成。
验证阶段,根据提示,要将域名添加一条DNS解析记录,这里要注意,要去申请域名的网站去操作。比如我的服务器买的阿里云,域名在新网买的,所以要去新网去设置,而不是在阿里云。
2.下载SSL证书并上传至服务器
选择Nginx版本证书,在nginx安装目录(一般在/etc/nginx)中新建文件夹(cert),放置证书
3.Nginx配置HTTPS服务
4.重定向
将所有http请求重定向为https,如上面配置所述。
有三种重定向方式:
- rewrite ^/(.*)$ https://example.com/$1;
- rewrite ^ https://example.com$request_uri? permanent;
- return 301 https://example.com$request_uri;
唯一的区别:正则匹配的性能。第三种性能最优,第一种差一些。然而对于业余的我,完全体会不到。
5.重启Nginx服务
1
2
|
nginx - t nginx - s reload |
6.前端页面外链资源url全部改成https协议
否则浏览器仍会提示不安全的连接
对于这些资源,能够使用https的则使用,如果不能使用可以将其下载到自己的服务器上。
HTTP2
一、所需条件
1、openssl 1.0.2+
1
|
openssl version //查看版本的命令 |
2、升级HTTPS
· 3.Nginx 1.9.5+ 且 支持
1
|
nginx -V # 查看版本 |
二、修改Nginx配置文件
原本的https的listen为
1
|
listen 443 ssl; |
现在在后面加上http2:
1
|
listen 443 ssl http2 default_server; |
重启Nginx
1
2
|
nginx -t nginx -s reload |
在浏览器中可以查看到协议
FireFox
chrome