1. 程式人生 > >Debian系統中Apache2.4安裝SSL證書

Debian系統中Apache2.4安裝SSL證書

Debian中的Apache2安裝SSL證書(賽門鐵克)

安裝步驟:

  1. 獲取證書CA:
    阿里雲申請SSL證書,繫結網站域名,其中申請和繫結步驟詳情請見:阿里雲證書申請及繫結流程
    下載下來的證書壓縮包中如下:

    證書壓縮包

    解壓放到系統中任意資料夾中,本人在/etc/apache2/ 目錄下建立了cert目錄,檔案放在cert中。
  2. 載入OpenSSL模組,終端或者xshell中輸入openssl,檢視是否安裝ssl,如果出現下面圖情況說明已經安裝過了。

    輸入openssl命令
  3. 載入Apache的SSL模組,輸入命令:a2enmod ssl,我是已經載入過的,見下圖所示,第一次時候,會提示重啟Apache:

    載入apache的ssl模組
  4. 安裝下載的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
  5. 把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

  6. 現在就可以測試,瀏覽器輸入https://www.theyun.com

    ,在載入SSL模組的同時,也自動放行了443埠,如果沒有的話,可以手動設定一下

  7. 接下來我們來處理無論是HTTP還是HTTPS都強制定向為HTTPS:
    (I)使用命令:a2enmod rewrite載入Apache的rewrite模組,貌似還會提醒重啟Apache;
    (II)載入完成後,使用nano修改Apache2.conf,找到如下:

    修改重定向

    將AllowOverride 後的None修改為All,這樣才能使後面建立的.htaccess檔案有用。
  8. 在網站的根目錄根,使用命令touch .htaccess來建立.htaccess檔案,這個檔案是個隱藏檔案,在Linux下是看不到的,可以通過ls -a命令來檢視;

  9. 使用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系統命令稍有不同,如有錯誤請各位大神指正。