現(xiàn)在越來越多的網(wǎng)站開始使用https協(xié)議,其實百度從2014年底就已經(jīng)開始支持https了,并且據(jù)說在排名上,同權(quán)重的網(wǎng)站,開啟https會優(yōu)待提升排名。先不管排不排名吧,https是一種更安全更先進的技術(shù)。作為互聯(lián)網(wǎng)的弄潮兒,我們必須要與時俱進呀~果斷的,全站啟用https協(xié)議。
不要以為開啟https只是在網(wǎng)址http后面加個s就可以了,其實不是的。https是需要驗證SSL證書的,如果沒有證書或者證書不匹配,則通過https訪問你的網(wǎng)站是會被瀏覽器攔截的。
一、獲取證書
升級到 HTTPS 協(xié)議的第一步,就是要獲得一張證書。阿里云上可以申請免費的HTTPS證書。
1.首先登錄阿里云,在“產(chǎn)品與服務(wù)”的下拉菜單中,找到“CA證書服務(wù)(數(shù)據(jù)安全)”。
2.點擊右上角“購買證書”按鈕
3.“保護類型”選擇“一個域名”,品牌選擇賽門鐵克。
然后證書類型選擇“免費型DV SSL”。
4.點擊“立即購買”
5.購買成功后,點擊“補全”
6.輸入一個域名,有一點需要注意,這里需要精確到二級域名,例如www.dedemao.com和pay.dedemao.com是兩個二級域名,是不一樣的。只能輸入一個,如果有多個域名需要HTTPS,需要購買多次,每次配置一個域名。填寫后,點擊下一步。
7.填寫個人信息,如果域名也在阿里云,域名驗證類型可以選擇DNS,并勾選。如果域名不在阿里云且服務(wù)器是linux的,那么選擇文件。
8.如果是選擇文件,需要將指定文件下載到指定目錄下。
9.等待審核通過后,點擊“下載”,下載證書。
二、安裝證書
根據(jù)服務(wù)器的環(huán)境選擇相應(yīng)的證書下載并閱讀配置教程即可。
安裝成功后,使用SSL Labs Server Test 檢查一下證書是否生效。
補充一下:
騰訊云面板下載的SSL證書壓縮包里面包含各種服務(wù)器引擎的證書,你需要選擇你的服務(wù)器類型比如我們用的是Nginx服務(wù)器,就需要上傳Nginx專用的SSL證書。如果是IIS,就上傳IIS專用的
服務(wù)器虛擬主機設(shè)置SSL證書路徑
上傳了SSL證書之后,我們還需在虛擬主機配置文件里面指定一下SSL證書的路徑,不然訪問會出錯。
別的服務(wù)器我們并不了解。但是就我們現(xiàn)在用的WDCP面板+Nginx配置文件的寫法是。你需要先找到
你服務(wù)器虛擬主機配置文件的路徑,我們的是/conf/vhost/idedecms.com.conf各有不同,舉一反三。
server {
listen 80;
root /www/web/idedecms_com/public_html;
server_name idedecms.com idedecms.com www.idedecms.com img.idedecms.mysitecdn.com;
index index.html index.php index.htm;
error_page 400 /errpage/400.html;
error_page 403 /errpage/403.html;
error_page 404 /errpage/404.html;
error_page 503 /errpage/503.html;
location ~ \.php$ {
proxy_pass http://127.0.0.1:88;
include naproxy.conf;
}
location ~ /\.ht {
deny all;
}
location / {
try_files $uri @apache;
}
location @apache {
proxy_pass http://127.0.0.1:88;
include naproxy.conf;
}
return 301 https://www.$server_name$request_uri;
}
server {
listen 443 ssl;
root /www/web/idedecms_com/public_html;
server_name idedecms.com idedecms.com www.idedecms.com img.idedecms.mysitecdn.com;
index index.html index.php index.htm;
error_page 400 /errpage/400.html;
error_page 403 /errpage/403.html;
error_page 404 /errpage/404.html;
error_page 503 /errpage/503.html;
location ~ \.php$ {
proxy_pass http://127.0.0.1:88;
include naproxy.conf;
}
location ~ /\.ht {
deny all;
}
location / {
try_files $uri @apache;
}
location @apache {
proxy_pass http://127.0.0.1:88;
include naproxy.conf;
}
ssl_certificate /www/ssl/idedecms_com/1_www.idedecms.com_bundle.crt;
ssl_certificate_key /www/ssl/idedecms_com/2_www.idedecms.com.key;
ssl_session_timeout 5m;
}
三、修改鏈接
下一步,網(wǎng)頁加載的 HTTP 資源,網(wǎng)站頁面js,css,以及圖片資源引用地址改為https。因為加密網(wǎng)頁內(nèi)如果有非加密的資源,瀏覽器是不會加載那些資源的。
<script src="http://foo.com/jquery.js"></script>
上面這行加載命令,有兩種改法。
<!-- 改法一 -->
<script src="https://foo.com/jquery.js"></script>
<!-- 改法二 -->
<script src="http://foo.com/jquery.js"></script>
其中,改法二會根據(jù)當(dāng)前網(wǎng)頁的協(xié)議,加載相同協(xié)議的外部資源,更靈活一些。
另外,如果頁面頭部用到了rel="canonical",也要改成HTTPS網(wǎng)址。
這個不用我說了吧,網(wǎng)站開啟https之后,頁面上使用http調(diào)用的資源都會無法調(diào)用。你需要把http的資源全都改成https調(diào)用。記住,不能漏掉任何一個js引用或者圖片如果有一個文件不是https引用的,則你的網(wǎng)站雖然可以正常https訪問,但是地址欄的https標識不會完全變綠,360瀏覽器尤為明顯。這代表你網(wǎng)站雖然啟用了https但是沒有做到完全的規(guī)范。被認定為不規(guī)范的https頁面。
四、301重定向
下一步,修改 Web 服務(wù)器的配置文件,使用 301 重定向,將 HTTP 協(xié)議的訪問導(dǎo)向 HTTPS 協(xié)議。
Nginx 的寫法。
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}
Apache 的寫法(.htaccess文件)。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
iis下可以參考這篇文章 https://www.jb51.net/article/109087.htm
使用cdn的朋友可以聯(lián)系cdn給設(shè)置301重定向
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!