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 的方法。透過這些設定,可確保伺服器符合最佳安全實踐,降低攻擊風險。