确保Ubuntu系统和OpenSSL库为最新版本,以获取性能改进和安全修复。
sudo apt update && sudo apt upgrade -y
OpenSSL主配置文件通常位于/etc/ssl/openssl.cnf,通过修改以下参数优化性能:
[ssl_session_cache]
type = shared
size = 100000 # 缓存大小(根据内存调整)
timeout = 300 # 缓存超时时间(秒)
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = HIGH:!aNULL:!MD5:!RC4:!3DES # 排除弱算法
若服务器CPU支持AES-NI(现代Intel/AMD CPU均支持),需确保OpenSSL编译时启用该指令集,以大幅提升AES加密性能:
grep aes /proc/cpuinfo
若有输出则表示支持。./config enable-ec_nistp_64_gcc_128 -O3 --prefix=/usr/local/openssl
make && sudo make install
(注:Ubuntu默认仓库的libssl-dev通常已启用AES-NI,可通过openssl version -a确认。)优化系统级设置以支持高并发加密操作:
ulimit -n 65535 # 临时生效
# 永久生效:编辑/etc/security/limits.conf,添加:
# * soft nofile 65535
# * hard nofile 65535
sudo sysctl -w net.ipv4.tcp_syncookies=1
sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sudo sysctl -w net.core.somaxconn=4096
sudo sysctl -w net.core.netdev_max_backlog=4096
# 永久生效:将上述命令添加到/etc/sysctl.conf
根据场景选择性能最优的加密算法:
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;
减少客户端验证证书状态的时间,提升TLS握手效率:
[ssl_stapling]
stapling = yes
stapling_verify = yes
[ocsp]
ocsp_must_staple = yes
ocsp_response_timeout = 60
重用已建立的连接,避免重复握手开销。例如,在应用程序中使用Keep-Alive头:
keepalive_timeout 65;
keepalive_requests 100;
openssl speed命令评估加密算法性能。openssl speed aes-128-gcm aes-256-gcm
top、htop、vmstat分析CPU、内存、I/O瓶颈。ss或netstat查看连接状态。ss -s # 查看当前连接统计