今天我會講述如何為你的個人網站或者部落格安裝ssl 證書,來保護你的通路者和網站之間通信的安全。
安全套接字層或稱ssl,是一種加密網站和浏覽器之間連接配接的标準安全技術。這確定伺服器和浏覽器之間傳輸的資料保持隐私和安全。它被成千上萬的人使用來保護他們與客戶的通信。要啟用ssl連結,web伺服器需要安裝ssl證書。
你可以建立你自己的ssl證書,但是這預設不會被浏覽器所信任,要解決這個問題,你需要從受信任的證書機構(ca)處購買證書,我們會向你展示如何獲驗證書并在apache中安裝。

<a target="_blank"></a>
證書機構(ca)會要求你在你的伺服器上生成一個證書簽名請求(csr)。這是一個很簡單的過程,隻需要一會兒就行,你需要在你的伺服器上運作下面的指令并輸入需要的資訊:
# openssl req -new -newkey rsa:2048 -nodes -keyout yourdomainname.key -out yourdomainname.csr
輸出看上去會像這樣:
generate csr
這一步會生成兩個檔案:一個用于解密ssl證書的私鑰檔案,一個證書簽名請求(csr)檔案(用于申請你的ssl證書)。
根據你申請的機構,你會需要上傳csr檔案或者在網站表格中粘帖該檔案内容。
# cat comodorsadomainvalidationsecureserverca.crt comodorsaaddtrustca.crt addtrustexternalcaroot.crt > bundle.crt
bundle
用下面的指令確定ssl子產品已經加載進apache了:
# a2enmod ssl
如果你看到了“module ssl already enabled”這樣的資訊就說明你成功了,如果你看到了“enabling module ssl”,那麼你還需要用下面的指令重新開機apache:
# service apache2 restart
最後像下面這樣修改你的虛拟主機檔案(通常在/etc/apache2/sites-enabled 下):
documentroot /var/www/html/
servername linoxide.com
sslengine on
sslcertificatefile /usr/local/ssl/crt/yourdomainname.crt
sslcertificatekeyfile /usr/local/ssl/yourdomainname.key
sslcacertificatefile /usr/local/ssl/bundle.crt
你現在應該可以用https://yourdomain/(注意使用‘https’而不是‘http’)來通路你的網站了,并可以看到ssl的進度條了(通常在你浏覽器中用一把鎖來表示)。
注意: 現在所有的内容連結都必須指向https,如果網站上的一些内容(像圖檔或者css檔案等)仍舊指向http連結的話,你會在浏覽器中得到一個警告,要修複這個問題,請確定每個連結都指向了https。
如果你希望重定向正常的http請求到https,添加下面的文本到你希望修改的虛拟主機,或者如果希望給伺服器上所有網站都添加的話就加入到apache.conf中:
rewriteengine on
rewritecond %{https} off
rewriterule (.*) https://%{http_host}%{request_uri}
原文釋出時間:2015-02-17
本文來自雲栖合作夥伴“linux中國”