📖 Apache SSL管理與設定

分類:伺服器管理 | 作者:pake | 發布時間:2024-11-18 14:32

SSL 設定指南(含 TLS 強化設定)

SSL(Secure Sockets Layer)與其後續標準 TLS(Transport Layer Security),能夠為伺服器提供加密通訊,確保傳輸安全。本指南將介紹如何在 Fedora Linux 上設定 SSL,產生 CSR(Certificate Signing Request),並進行 TLS 安全強化設定


目錄


安裝 OpenSSL 與 mod_ssl

在 Fedora 上安裝 OpenSSL(用於憑證管理)與 mod_ssl(Apache SSL 模組):

sudo dnf install -y openssl mod_ssl

確保 Apache 服務啟動:

sudo systemctl enable --now httpd

產生 SSL 憑證與 CSR

1. 產生私鑰(Private Key)

sudo openssl genpkey -algorithm RSA -out /etc/pki/tls/private/server.key -pkeyopt rsa_keygen_bits:4096

2. 產生 CSR(憑證請求文件)

sudo openssl req -new -key /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.csr

系統將要求輸入以下資訊:

Country Name (2 letter code) [XX]: TW
State or Province Name (full name) []: Taipei
Locality Name (eg, city) [Default City]: Taipei
Organization Name (eg, company) [Default Company Ltd]: FTUG
Organizational Unit Name (eg, section) []: IT Department
Common Name (eg, YOUR name or your server's hostname) []: fedora.tw
Email Address []: admin@your-domain.com

3. 產生自簽名憑證(測試用)

若為內部測試,可直接產生自簽名憑證(有效期 1 年):

sudo openssl x509 -req -days 365 -in /etc/pki/tls/certs/server.csr -signkey /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.crt

正式環境 應向 CA(如 Let's Encrypt、GlobalSign)申請正式憑證。


設定 Apache 使用 SSL

1. 編輯 Apache SSL 設定檔

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

找到以下區塊,確保路徑指向剛剛產生的憑證:

<VirtualHost *:443>
    ServerAdmin admin@your-domain.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/server.crt
    SSLCertificateKeyFile /etc/pki/tls/private/server.key

    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

儲存後,重新啟動 Apache:

sudo systemctl restart httpd

強化 TLS 設定

為了提升安全性,建議停用 舊版 TLS(TLS 1.0 & 1.1)並只允許 TLS 1.2 & TLS 1.3

1. 修改 SSL 設定

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

找到 SSLProtocol 這一行,修改為:

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

停用弱加密套件,僅允許安全的加密:

SSLCipherSuite HIGH:!aNULL:!MD5:!3DES:!RC4
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off

儲存後,重新啟動 Apache:

sudo systemctl restart httpd

測試與驗證 SSL 設定

1. 使用 openssl 測試 TLS 版本

openssl s_client -connect your-domain.com:443 -tls1_2
openssl s_client -connect your-domain.com:443 -tls1_3

若成功連線,表示該 TLS 版本已啟用。

2. 使用 curl 測試 HTTPS

curl -I -k https://your-domain.com

3. 使用 SSL Labs 檢測

前往 SSL Labs,輸入 your-domain.com 測試 SSL 強度。


結語

本指南介紹了在 Fedora產生 SSL 憑證、設定 Apache SSL、強化 TLS 的方法。透過這些設定,可確保伺服器符合最佳安全實踐,降低攻擊風險。

⬅ 上一篇 下一篇 ➡
🔙 返回 伺服器管理 📚 返回教學列表 🏠 返回首頁