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

Adrian Dinu發表於2015-02-17

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

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

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

生成一個證書籤名請求

證書機構(CA)會要求你在你的伺服器上生成一個證書籤名請求(CSR)。這是一個很簡單的過程,只需要一會兒就行,你需要在你的伺服器上執行下面的命令並輸入需要的資訊:

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

輸出看上去會像這樣:

generate csr

這一步會生成兩個檔案:一個用於解密SSL證書的私鑰檔案,一個證書籤名請求(CSR)檔案(用於申請你的SSL證書)。

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

在Apache中安裝實際的證書

生成步驟完成之後,你會收到新的數字證書。本篇教程中我們使用Comodo SSL,並在一個它發給我們的zip檔案中收到了證書。要在apache中使用它,你首先需要用下面的命令用收到的證書建立一個組合的證書:

# 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中

如果你希望重定向常規的HTTP請求到HTTPS,新增下面的文字到你希望修改的虛擬主機,或者如果希望給伺服器上所有網站都新增的話就加入到apache.conf中:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

via: http://linoxide.com/ubuntu-how-to/install-ssl-apache-2-4-in-ubuntu/

作者:Adrian Dinu 譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

相關文章