網站升級HTTPS教程
現在越來越多的網站開始使用https協議,其實百度從2014年底就已經開始支持https了,并且據說在排名上,同權重的網站,開啟https會優待提升排名。先不管排不排名吧,https是一種更安全更先進的技術。作為互聯網的弄潮兒,我們必須要與時俱進呀~果斷的,全站啟用https協議。
不要以為開啟https只是在網址http后面加個s就可以了,其實不是的。https是需要驗證SSL證書的,如果沒有證書或者證書不匹配,則通過https訪問你的網站是會被瀏覽器攔截的。
一、獲取證書
升級到 HTTPS 協議的第一步,就是要獲得一張證書。阿里云上可以申請免費的HTTPS證書。
1.首先登錄阿里云,在“產品與服務”的下拉菜單中,找到“CA證書服務(數據安全)”。
2.點擊右上角“購買證書”按鈕
3.“保護類型”選擇“一個域名”,品牌選擇賽門鐵克。
然后證書類型選擇“免費型DV SSL”。
4.點擊“立即購買”
5.購買成功后,點擊“補全”
6.輸入一個域名,有一點需要注意,這里需要精確到二級域名,例如www.dedemao.com和pay.dedemao.com是兩個二級域名,是不一樣的。只能輸入一個,如果有多個域名需要HTTPS,需要購買多次,每次配置一個域名。填寫后,點擊下一步。
7.填寫個人信息,如果域名也在阿里云,域名驗證類型可以選擇DNS,并勾選。如果域名不在阿里云且服務器是linux的,那么選擇文件。
8.如果是選擇文件,需要將指定文件下載到指定目錄下。
9.等待審核通過后,點擊“下載”,下載證書。
二、安裝證書
根據服務器的環境選擇相應的證書下載并閱讀配置教程即可。
安裝成功后,使用SSL Labs Server Test 檢查一下證書是否生效。
補充一下:
騰訊云面板下載的SSL證書壓縮包里面包含各種服務器引擎的證書,你需要選擇你的服務器類型比如我們用的是Nginx服務器,就需要上傳Nginx專用的SSL證書。如果是IIS,就上傳IIS專用的
服務器虛擬主機設置SSL證書路徑
上傳了SSL證書之后,我們還需在虛擬主機配置文件里面指定一下SSL證書的路徑,不然訪問會出錯。
別的服務器我們并不了解。但是就我們現在用的WDCP面板+Nginx配置文件的寫法是。你需要先找到
你服務器虛擬主機配置文件的路徑,我們的是/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;}
三、修改鏈接
下一步,網頁加載的 HTTP 資源,網站頁面js,css,以及圖片資源引用地址改為https。因為加密網頁內如果有非加密的資源,瀏覽器是不會加載那些資源的。
<script src="http://foo.com/jquery.js"></script>
上面這行加載命令,有兩種改法。
<!-- 改法一 -->
<script src="https://foo.com/jquery.js"></script>
<!-- 改法二 -->
<script src="http://foo.com/jquery.js"></script>
其中,改法二會根據當前網頁的協議,加載相同協議的外部資源,更靈活一些。
另外,如果頁面頭部用到了rel="canonical",也要改成HTTPS網址。
<link rel="canonical" />
這個不用我說了吧,網站開啟https之后,頁面上使用http調用的資源都會無法調用。你需要把http的資源全都改成https調用。記住,不能漏掉任何一個js引用或者圖片如果有一個文件不是https引用的,則你的網站雖然可以正常https訪問,但是地址欄的https標識不會完全變綠,360瀏覽器尤為明顯。這代表你網站雖然啟用了https但是沒有做到完全的規范。被認定為不規范的https頁面。
四、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 OnRewriteCond %{HTTPS} offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
使用cdn的朋友給cdn設置301重定向
相關文章: