為何要升級到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