SSL 安全憑證設定 (Apache + CentOS 7)

僅作為個人紀錄使用

1. 取得 SSL 憑證檔案

申請 SSL 憑證後,通常會獲得以下檔案:

  • certificate.crt伺服器憑證(主要憑證)
  • private.key憑證私鑰(用於驗證伺服器身份,請妥善保管)
  • ca_bundle.crt中繼憑證(根憑證與中介憑證的組合,部分 CA 可能不提供)

如果你的 SSL 憑證發行商提供的是 .pem 格式,可能需要轉換或拆分成 .crt.key 以符合 Apache 的需求。

2. 將憑證檔案放置到指定目錄

預設憑證存放目錄(CentOS 7)

預設路徑 /etc/pki/tls/certs/

你也可以使用其他目錄,但請確保 Apache 能夠存取這些檔案。

設定適當的權限(私鑰應該限制存取)

1
chmod 600 /etc/pki/tls/certs/private.key

3. 安裝 Apache SSL 模組

如果你的 Apache 尚未啟用 SSL,請安裝 mod_ssl 模組:

1
yum -y install mod_ssl

安裝後,Apache 會在 /etc/httpd/conf.d/ 目錄下自動建立 ssl.conf 設定檔。

4. 查找 SSL 設定檔案路徑

可以使用以下指令確認 ssl.conf 的位置:

1
grep -i -r "SSLCertificateFile" /etc/httpd/

預設情況下,設定檔應位於:
/etc/httpd/conf.d/ssl.conf

5. 設定 SSL 憑證

使用 vi 或 nano 編輯 ssl.conf 設定檔:

1
vi /etc/httpd/conf.d/ssl.conf

找到並修改以下設定(根據你的憑證檔案路徑調整):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<VirtualHost *:443>
DocumentRoot "/var/www/html"
ServerName www.example.com:443

SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 # 禁用過時的 SSLv2 和 SSLv3,防止 POODLE 攻擊
SSLCertificateFile /etc/pki/tls/certs/certificate.crt # 根據檔案路徑
SSLCertificateKeyFile /etc/pki/tls/certs/private.key # 根據檔案路徑
SSLCertificateChainFile /etc/pki/tls/certs/ca_bundle.crt # 根據檔案路徑

# 強制 HTTPS 重導向(可選)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
</VirtualHost>

注意
某些 SSL 憑證可能沒有 ca_bundle.crt,如果 SSLCertificateChainFile 缺少或導致錯誤,請註解該行。

6. 重啟 Apache

1
systemctl restart httpd

7. 測試 SSL 連線

前往目標網站看看是否能夠正常連線