Debian系統中Apache2.4安裝SSL證書
Debian中的Apache2安裝SSL證書(賽門鐵克)
安裝步驟:
獲取證書CA:
阿里雲申請SSL證書,繫結網站域名,其中申請和繫結步驟詳情請見:阿里雲證書申請及繫結流程
下載下來的證書壓縮包中如下:
解壓放到系統中任意資料夾中,本人在/etc/apache2/ 目錄下建立了cert目錄,檔案放在cert中。載入OpenSSL模組,終端或者xshell中輸入openssl,檢視是否安裝ssl,如果出現下面圖情況說明已經安裝過了。
載入Apache的SSL模組,輸入命令:a2enmod ssl,我是已經載入過的,見下圖所示,第一次時候,會提示重啟Apache:
安裝下載的CA證書:Apache載入SSL模組後,會在/etc/apache2/sites-available下生成default-ssl.conf檔案,通過nano /etc/apache2/sites-available/default-ssl.conf命令或vi命令編輯該檔案:
(I)第一個VirtualHost標籤www.theyun.com:443
(II)ServerName www.theyun.com
(III)SSLCertificateFile /usr/local/apache/conf/2_www.domain.com_cert.crt
(IV)SSLCertificateKeyFile /usr/local/apache/conf/3_www.domain.com.key
(V)SSLCertificateChainFile /usr/local/apache/conf/1_root_bundle.crt
把default-ssl.conf對映至/etc/apache2/sites-enabled資料夾:
(I) 使用命令 ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf 進行對映操作,此處將可用配置對映到啟用配置中。
(II)重新載入Apache配置檔案:sudo /etc/init.d/apache2 force-reload
(III)重啟Apache服務:sudo /etc/init.d/apache2 restart現在就可以測試,瀏覽器輸入https://www.theyun.com
接下來我們來處理無論是HTTP還是HTTPS都強制定向為HTTPS:
(I)使用命令:a2enmod rewrite載入Apache的rewrite模組,貌似還會提醒重啟Apache;
(II)載入完成後,使用nano修改Apache2.conf,找到如下:
將AllowOverride 後的None修改為All,這樣才能使後面建立的.htaccess檔案有用。在網站的根目錄根,使用命令touch .htaccess來建立.htaccess檔案,這個檔案是個隱藏檔案,在Linux下是看不到的,可以通過ls -a命令來檢視;
使用nano命令對其修改,輸入如下內容:
RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://www.theyun.com/$1 [L,R]
這些都是是正則匹配,我們可以把RewriteRule(重定向規則)進行修改,我把https://後面的改成了自己的網站,防止SERVER_NAME沒設定什麼的,以防萬一。
重新載入Apache配置,重啟Apache2,然後用http訪問會自動重定向到https,到此SSL配置結束!
備註:本人新手菜鳥,剛接觸Linux不久,由於公司網站需要https安全訪問,配置SSL證書;證書來源於阿里雲,因為域名實在阿里雲上繫結的;此文章為總結所得,且針對Debian系統,其他Linux系統命令稍有不同,如有錯誤請各位大神指正。