如何在Apache下部署SSL證書網站實現HTTPS

HTTPS是以安全為目標的HTTP通道,簡單講是HTTP的安全版。谷歌已經制定了一項長遠的計劃,它的最終目標是將所有通過HTTP協議呈現的網頁標為“不安全”,對於站長來說,部署SSL證書來遷移到HTTPS是一個現實和重要的問題,那麼,對於Apache系統來說,如何部署SSL證書實現HTTPS協議呢?下面就講述一下具體的實現方法。

安裝好Apache, 並且確認是否安裝ssl模塊,如果沒安裝的話,使用yum install mod_ssl openssl來安裝ssl模塊。

之後,申請並下載SSL證書文件。通常來說有四個文件,分別是:證書文件ca.pem、證書私鑰文件ca.key、證書公鑰文件public.pem、證書鏈文件chain.pem。

( 1 ) 在Apache的安裝目錄下創建cert目錄,並且將下載的全部文件拷貝到cert目錄中。如果申請證書時是自己創建的CSR文件,請將對應的私鑰文件放到cert目錄下並且命名為ca.key;

( 2 ) 打開 apache 安裝目錄下 conf 目錄中的 httpd.conf 文件,找到以下內容並去掉“#”:

#LoadModule ssl_module modules/mod_ssl.so (如果找不到請確認是否編譯過 openssl 插件)

#Include conf/extra/httpd-ssl.conf

( 3 ) 打開 apache 安裝目錄下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,與操作系統及安裝方式有關), 在配置文件中查找以下配置語句:

# 添加 SSL 協議支持協議,去掉不安全的協議

SSLProtocol all -SSLv2 -SSLv3

# 修改加密套件如下

SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM

SSLHonorCipherOrder on

# 證書公鑰配置

SSLCertificateFile cert/public.pem

# 證書私鑰配置

SSLCertificateKeyFile cert/ca.key

# 證書鏈配置,如果該屬性開頭有 '#'字符,請刪除掉

SSLCertificateChainFile cert/chain.pem

( 4 ) 設置虛擬主機

如果要設置http和https同時生效,那麼需要為 http 在端口 80 上設立 VirtualHost,同時為 https 在端口 443 上作類似的設置。在端口 80 上的網站的 VirtualHost 例子如下

AllowOverride All

DocumentRoot /var/www/vhosts/yoursite.com/httpdocs

ServerName yoursite.com

在端口 443 上增加一個HTTPS網站,需要在文件加入如下內容

NameVirtualHost *:443

然後再加入一個類似如下的 VirtualHost 記錄:

SSLEngine on

SSLCertificateFile /etc/pki/tls/certs/ca.crt

SSLCertificateKeyFile /etc/pki/tls/private/ca.key

AllowOverride All

DocumentRoot /var/www/vhosts/yoursite.com/httpsdocs

ServerName yoursite.com

最後,使用如下指令重新啟動 Apache , 即可實現網站的HTTPS功能。

/etc/init.d/httpd restart

主機偵探SSL證書商城(http://ssl.idcspy.net/)是專售Symantec、Geotrust、Comodo以及RapidSSL等多家全球權威CA機構的SSL數字證書。並且提供多類型SSL證書申請和安裝服務,免手續費,全程專業技術指導。


分享到:


相關文章: