一、獲取證書
升級到 HTTPS 協議的第一步,就是要獲得一張證書。阿里云上可以申請免費的HTTPS證書。
1.首先登錄阿里云,在“產品與服務”的下拉菜單中,找到“CA證書服務(數據安全)”。
(此圖片來源于網絡,如有侵權,請聯系刪除! )
2.點擊右上角“購買證書”按鈕
(此圖片來源于網絡,如有侵權,請聯系刪除! )
3.“保護類型”選擇“一個域名”,品牌選擇賽門鐵克。
(此圖片來源于網絡,如有侵權,請聯系刪除! )
然后證書類型選擇“免費型DV SSL”。
(此圖片來源于網絡,如有侵權,請聯系刪除! )
4.點擊“立即購買”
(此圖片來源于網絡,如有侵權,請聯系刪除! )
5.購買成功后,點擊“補全”
(此圖片來源于網絡,如有侵權,請聯系刪除! )
6.輸入一個域名,有一點需要注意,這里需要精確到二級域名,例如www.dede58.com和pay.dede58.com是兩個二級域名,是不一樣的。只能輸入一個,如果有多個域名需要HTTPS,需要購買多次,每次配置一個域名。填寫后,點擊下一步。
(此圖片來源于網絡,如有侵權,請聯系刪除! )
7.填寫個人信息,如果域名也在阿里云,域名驗證類型可以選擇DNS,并勾選。如果域名不在阿里云且服務器是linux的,那么選擇文件。
(此圖片來源于網絡,如有侵權,請聯系刪除! )
(此圖片來源于網絡,如有侵權,請聯系刪除! )
8.如果是選擇文件,需要將指定文件下載到指定目錄下。
(此圖片來源于網絡,如有侵權,請聯系刪除! )
9.等待審核通過后,點擊“下載”,下載證書。
(此圖片來源于網絡,如有侵權,請聯系刪除! )
二、安裝證書
根據服務器的環境選擇相應的證書下載并閱讀配置教程即可。
(此圖片來源于網絡,如有侵權,請聯系刪除! )
安裝成功后,使用 SSL Labs Server Test 檢查一下證書是否生效。
三、修改鏈接
下一步,網頁加載的 HTTP 資源,要全部改成 HTTPS 鏈接。因為加密網頁內如果有非加密的資源,瀏覽器是不會加載那些資源的。
<script src="http://foo.com/jquery.js"></script>
上面這行加載命令,有兩種改法。
<!-- 改法一 -->
<script src="https://foo.com/jquery.js"></script>
<!-- 改法二 -->
<script src="//foo.com/jquery.js"></script>
其中,改法二會根據當前網頁的協議,加載相同協議的外部資源,更靈活一些。
另外,如果頁面頭部用到了rel="canonical",也要改成HTTPS網址。
<link rel="canonical" href="https://foo.com/bar.html" />
四、301重定向
下一步,修改 Web 服務器的配置文件,使用 301 重定向,將 HTTP 協議的訪問導向 HTTPS 協議。
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]