網站如何從http升級成https
基本概念:
HTTP: 是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標准,用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。
HTTPS: 是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
很多用戶目前對HTTPS持觀望態度,當然網站升級HTTPS有利有弊,利當然是安全系數提升,降低劫持風險,弊端主要體現在速度上,由於證書驗證、多次握手、CPU消耗等原因,https頁面速度會被拖慢一點。
谷歌、火狐等瀏覽器廠商也已經扛起HTTPS大旗,對於HTTP站點會提示不安全警告。而且像谷歌、百度等搜索引擎也早已相應HTTPS號召,都聲稱對HTTPS站點頁面友好甚至優先抓取,排名靠前,當然具體實際實施情況就另當別論了,目前來看,谷歌做的要比百度更成熟一些。
要讓互聯網站點都升級到HTTPS協議還需一段時間,但不可否認HTTPS是大勢所趨。所以本文我們一起來了解下如何將網站升級到HTTPS協議。
1.購買、下載SSL證書
SSL證書有付費也有免費的,當然價格其實並不很高。之前我有整理過國內外幾家知名的SSL商家,可供大家參考(http://blog.cnezsoft.com/blog/ssl-80138.html)。
2.備份,備份,備份
這是極其重要且必須的一步。即便你自認為技術深厚,對服務器熟悉也不要忽視升級前做好網站備份。
3.安裝證書
不同廠家或都提供了相應的安裝證書的解決方案,流程大同小異。這里我以免費SSL證書為例,在LAMP環境下給大家介紹如何安裝證書。
打開apache的配置文件httpd.conf,找到
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
刪除行首的配置語句注釋符號“#”
保存退出。
打開apache安裝目錄下conf/extra目錄中的httpd-ssl.conf文件
在配置文件中查找以下配置語句
SSLCertificateFile conf/ssl.crt/server.crt 將服務器證書配置到該路徑下
SSLCertificateKeyFile conf/ssl.key/server.key 將服務器證書私鑰配置到該路徑下
#SSLCertificateChainFile conf/ssl.crt/ca.crt 刪除行首的“#”號注釋符,並將中級CA證書 ca.crt配置到該路徑下。
添加SSL 協議支持語句,關閉不安全的協議和加密套件:
SSLProtocol all -SSLv2 -SSLv3
修改加密套件如下:
SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
保存退出,並重啟Apache。檢查HTTPS頁面能否成功訪問。
4.301重定向
考慮到SEO影響,須將之前的HTTP頁面轉為HTTPS。我們修改配置文件即可,這里我還是以LAMP環境為例,在.htaccess文件中加下面代碼即可:
RewriteEngine OnRewriteCond %{HTTPS} offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]