天天看點

如何在Ubuntu 14.04 上為Apache 2.4 安裝SSL支援如何在Ubuntu 14.04 上為Apache 2.4 安裝SSL支援

今天我會講述如何為你的個人網站或者部落格安裝ssl 證書,來保護你的通路者和網站之間通信的安全。

安全套接字層或稱ssl,是一種加密網站和浏覽器之間連接配接的标準安全技術。這確定伺服器和浏覽器之間傳輸的資料保持隐私和安全。它被成千上萬的人使用來保護他們與客戶的通信。要啟用ssl連結,web伺服器需要安裝ssl證書。

你可以建立你自己的ssl證書,但是這預設不會被浏覽器所信任,要解決這個問題,你需要從受信任的證書機構(ca)處購買證書,我們會向你展示如何獲驗證書并在apache中安裝。

如何在Ubuntu 14.04 上為Apache 2.4 安裝SSL支援如何在Ubuntu 14.04 上為Apache 2.4 安裝SSL支援

<a target="_blank"></a>

證書機構(ca)會要求你在你的伺服器上生成一個證書簽名請求(csr)。這是一個很簡單的過程,隻需要一會兒就行,你需要在你的伺服器上運作下面的指令并輸入需要的資訊:

# openssl req -new -newkey rsa:2048 -nodes -keyout yourdomainname.key -out yourdomainname.csr

輸出看上去會像這樣:

如何在Ubuntu 14.04 上為Apache 2.4 安裝SSL支援如何在Ubuntu 14.04 上為Apache 2.4 安裝SSL支援

generate csr

這一步會生成兩個檔案:一個用于解密ssl證書的私鑰檔案,一個證書簽名請求(csr)檔案(用于申請你的ssl證書)。

根據你申請的機構,你會需要上傳csr檔案或者在網站表格中粘帖該檔案内容。

# cat comodorsadomainvalidationsecureserverca.crt comodorsaaddtrustca.crt addtrustexternalcaroot.crt &gt; bundle.crt

如何在Ubuntu 14.04 上為Apache 2.4 安裝SSL支援如何在Ubuntu 14.04 上為Apache 2.4 安裝SSL支援

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中國”