保持軟件更新
確保系統和Apache為最新版本,新版本通常包含SSL性能改進與安全修復。使用sudo apt update && sudo apt upgrade(Ubuntu/Debian)或對應包管理器更新系統及Apache。
優化SSL/TLS協議配置
禁用不安全的舊協議(如SSLv2、SSLv3、TLSv1、TLSv1.1),僅啟用TLSv1.2及以上版本(優先支持TLSv1.3)。在Apache配置文件(如ssl.conf或站點配置文件)中添加:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
TLSv1.3減少了握手輪次(僅需1-2次),顯著提升性能。
選擇高性能密碼套件
選用兼顧安全與性能的密碼套件,優先支持前向保密(PFS,如ECDHE密鑰交換)。配置示例:
SSLCipherSuite HIGH:!aNULL:!MD5:!RC4:!3DES
避免使用弱密碼套件(如DES、RC4),減少加密計算開銷。
啟用SSL會話緩存與票證
通過重用SSL握手減少重復協商,降低延遲。配置會話緩存:
SSLSessionCache shmcb:/var/run/ssl_scache(512000)(緩存大小512KB,可根據服務器內存調整)
SSLSessionCacheTimeout 300(緩存超時300秒);
啟用會話票證(若客戶端支持):
SSLSessionTickets on。
啟用OCSP Stapling
讓服務器主動獲取證書狀態(OCSP響應)并發送給客戶端,避免客戶端單獨驗證導致的延遲。配置示例:
SSLUseStapling on
SSLStaplingCache shmcb:/var/run/ocsp-stapling-cache(128000)(緩存大小128KB)。
啟用HTTP/2協議
HTTP/2的多路復用特性可減少連接建立開銷,提升并發性能。在配置中添加:
Protocols h2 http/1.1
需確保Apache版本≥2.4.17且mod_http2模塊已啟用。
調整KeepAlive設置
啟用KeepAlive減少TCP握手次數,提升連接復用率。配置示例:
KeepAlive On
MaxKeepAliveRequests 100(單個連接最大請求數,避免單個連接占用過久)
KeepAliveTimeout 5(連接保持時間,平衡復用率與資源占用)。
優化系統與Apache參數
/etc/security/limits.conf添加:apache soft nofile 65536apache hard nofile 65536/etc/sysctl.conf,添加以下參數提升網絡性能:net.core.somaxconn = 65535(監聽隊列最大長度)net.ipv4.tcp_max_syn_backlog = 65535(SYN隊列最大長度)net.ipv4.tcp_tw_reuse = 1(允許復用TIME-WAIT連接)net.ipv4.tcp_fin_timeout = 30(TIME-WAIT超時時間,單位秒)sudo sysctl -p。啟用壓縮(可選)
對文本類內容(HTML、CSS、JS)啟用Gzip壓縮,減少傳輸數據量(注意:HTTPS壓縮可能存在CRIME攻擊風險,需權衡)。配置示例:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
SetEnvIf Request_URI \.(?:gif|jpe?g|png|exe|t?gz|zip|bz2|sit|rar|pdf)$ no-gzip dont-vary
</IfModule>。
監控與持續調優
使用工具(如openssl s_client、nmap、在線SSL檢測服務)定期分析SSL配置性能,根據服務器負載(CPU、內存、網絡流量)調整緩存大小、工作進程數等參數。例如:
openssl s_client -connect yourdomain.com:443 -tls1_2 -servername yourdomain.com
可查看握手時間、支持的協議/密碼套件等信息。