HTTPS簡(jiǎn)介
HTTPS(Hyper Text Transfer Protocol Over Secure Socket Layer)是以安全為目標(biāo)的HTTP通道。簡(jiǎn)單來(lái)說(shuō),通過(guò)HTTP協(xié)議訪問(wèn)的網(wǎng)站,在登陸和數(shù)據(jù)傳輸過(guò)程中所有信息都是沒有加密的,黑客很容易就能獲取用戶訪問(wèn)網(wǎng)站的所有信息。而HTTPS則通過(guò)SSL/TLS協(xié)議進(jìn)行加密,來(lái)提高網(wǎng)絡(luò)安全性,即使傳輸信息被黑客捕捉到,一般來(lái)說(shuō)也很難解析其中的內(nèi)容。
在通過(guò)傳統(tǒng)的HTTP方式訪問(wèn)網(wǎng)站時(shí),用戶通過(guò)瀏覽器(或者其他客戶端)訪問(wèn)服務(wù)器,服務(wù)器直接返回需要的信息。而在HTTPS方式通訊時(shí),用戶信息則需要經(jīng)過(guò)認(rèn)證服務(wù)器來(lái)保證加密過(guò)得數(shù)據(jù)被傳輸?shù)秸_的服務(wù)器和客戶機(jī)上。HTTPS需要的認(rèn)證服務(wù)器和加密證書可以由自己頒布給自己,但一般除了局域網(wǎng)和測(cè)試目的外,自己頒發(fā)的證書往往缺乏權(quán)威性,因此,要實(shí)現(xiàn)HTTPS方式,首先需要從可以頒發(fā)CA證書的權(quán)威機(jī)構(gòu)申請(qǐng)證書并且部署在自己網(wǎng)站上。
大部分CA證書都需要付費(fèi)并且價(jià)格不菲,但也有一些可以提供免費(fèi)證書并且具有同樣權(quán)威性的機(jī)構(gòu)。最著名的免費(fèi)CA證書頒發(fā)機(jī)構(gòu)要數(shù)Let's Encrypt,而阿里云提為個(gè)人和小微企業(yè)提供免費(fèi)版的DV證書,阿里提供的DV證書是賽門鐵克(Symantec)頒布的,作為昔日殺毒軟件巨頭的賽門鐵克,其認(rèn)證證書同樣具有權(quán)威性。
證書申請(qǐng)與生成
以阿里云CA證書申請(qǐng)流程為例。購(gòu)買完CA證書之后,可以在阿里云的SSL證書管理頁(yè)面進(jìn)行證書申請(qǐng)。申請(qǐng)完的證書將會(huì)和相應(yīng)的域名綁定并配套使用。除了域名之外,申請(qǐng)時(shí)還需要輸入聯(lián)系人的聯(lián)系電話、郵箱等信息,并且選擇DNS驗(yàn)證和證書生成的方式。如果你的域名也是在阿里云平臺(tái)購(gòu)買的,則可以通過(guò)自動(dòng)驗(yàn)證DNS的方式完成,否則可能需要按照要求添加域名的解析地址(按照系統(tǒng)要求添加一條域名解析記錄,或者上傳指定內(nèi)容的文件到網(wǎng)站目錄下)。選擇CSR證書生成方式的時(shí)候,可以采用阿里云系統(tǒng)自動(dòng)生成的方式以減少錯(cuò)誤。除了免費(fèi)的DV證書外,其他證書的申請(qǐng)還需要提供營(yíng)業(yè)執(zhí)照等等阿里云平臺(tái)要求的材料。
SSL證書部署
阿里云證書部署文檔中針對(duì)不同操作系統(tǒng)下不同網(wǎng)絡(luò)引擎的安裝和部署進(jìn)行了詳細(xì)說(shuō)明。在ubuntu下使用Apache2服務(wù)器時(shí)。需要在證書生成界面選擇相應(yīng)的操作系統(tǒng)和軟件類型,并且下載對(duì)應(yīng)的證書文件,使用apache2服務(wù)器時(shí)下載后的文件分為domain.key秘鑰文件,domain_public.crt公鑰文件和domain_chain.crt秘鑰鏈文件三個(gè)(Nginx沒有秘鑰鏈文件)。如果是下載在本地計(jì)算機(jī)上而服務(wù)器是通過(guò)ssh方式命令行管理的。那么可能需要將下載到的文件復(fù)制到服務(wù)器上??梢酝ㄟ^(guò)以下scp命令拷貝到遠(yuǎn)程目錄下,再參考官方文檔建立對(duì)應(yīng)的目錄并移動(dòng)到相關(guān)目錄下:
scp -P portnumber domain_public.crt [email protected]:~/ #遠(yuǎn)程復(fù)制
sudo mkdir /etc/apache2/cert #新建文件夾
sudo mv ~/domain_public.crt /etc/apache2/cert/domain_public.crt #移動(dòng)文件
sudo a2enmod ssl #啟用apache2的ssl模塊
sudo ls /etc/apache2/sites-available/ #查看目錄下生成的default-ssl.conf文件
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf
#也可以在sites-available下修改后通過(guò)軟連接到sites-enabled中
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf
編輯default-ssl.conf文件
<IfModules mod_ssl.c>
<VirtualHost *:443>
ServerName #修改為證書綁定的域名www.YourDomainName.com
SSLCertificateFile /etc/apache2/cert/www.YourDomainName_public.crt
SSLCertificateKeyFile /etc/apache2/cert/www.YourDomainName.com.key
SSLCertificateChainFile /etc/apache2/cert/www.YourDomainName.com_chain.crt
重載apache2配置文件并重啟服務(wù)。
sudo /etc/init.d/apache2 force-reload
sudo /etc/init.d/apache2 restart
服務(wù)重啟后,可以在瀏覽器中輸入https://www.domainname.com 驗(yàn)證證書安裝結(jié)果,如果瀏覽器標(biāo)識(shí)欄顯示綠色小鎖標(biāo)識(shí),說(shuō)明證書安裝成功。以wordPress/ target=_blank class=infotextkey>WordPress博客服務(wù)為例,可以進(jìn)行網(wǎng)站設(shè)置,并設(shè)置ssl強(qiáng)制跳轉(zhuǎn)以保障網(wǎng)絡(luò)安全。
設(shè)置wordpress安全域名并且強(qiáng)制跳轉(zhuǎn)安全網(wǎng)站
在進(jìn)行wordpress域名設(shè)置前,需要先確認(rèn)網(wǎng)站可以同時(shí)通過(guò)http或者h(yuǎn)ttps兩種方式訪問(wèn)。以免修改后網(wǎng)站無(wú)法訪問(wèn)。網(wǎng)站可以顯示時(shí),可以在wordpress儀表盤的設(shè)置選項(xiàng)中,將原有http修改為https。修改完成后,wordpress可以自動(dòng)修改相應(yīng)設(shè)置,以便網(wǎng)站可以通過(guò)https方式訪問(wèn)。
針對(duì)http不安全的訪問(wèn)方式,可以在網(wǎng)站設(shè)置中將其強(qiáng)行跳轉(zhuǎn)到https方式下訪問(wèn)以保證安全。
在sites-enabled/000-default.conf (如果網(wǎng)站用的其他配置文件應(yīng)該做相應(yīng)修改)。在<VirtualHost *:80>和</VirtualHost>之間添加以下三行,來(lái)強(qiáng)制將網(wǎng)站跳轉(zhuǎn)到https下,并重啟apache2服務(wù)。
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
防火墻與SSL證書期限
https協(xié)議默認(rèn)使用443端口,如果ubuntu系統(tǒng)中啟用了防火墻,需要開啟該端口。在ubuntu系統(tǒng)中,一般通過(guò)ufw防火墻軟件管理網(wǎng)絡(luò)。
sudo apt-get install ufw #安裝防火墻
sudo ufw status #查看防火墻
sudo ufw allow 22 #允許22端口,不限制協(xié)議
sudo ufw allow 80 /tcp #允許80端口通過(guò)tcp協(xié)議
sudo ufw enable #啟用防火墻,注意,如果服務(wù)器是遠(yuǎn)程通過(guò)ssh管理
#一定要在啟用防火墻前允許ssh管理端口如22訪問(wèn),否則可能ssh無(wú)法遠(yuǎn)程登錄
sudo ufw disable #禁用防火墻
阿里云的免費(fèi)DV證書和let's encrypt證書默認(rèn)期限均為一年,在證書到期前需要再次申請(qǐng)并部署證書以保證網(wǎng)站正常訪問(wèn)。






