Linux 下 OpenSSL 慢 的原因通常不是 OpenSSL 本身“写得慢”,而是使用方式、系统配置或硬件因素导致的。下面按常见原因从高到低给你梳理一下。
如果你的 CPU 支持 AES-NI,但 OpenSSL 没用到,速度会慢 5~10 倍。
检查是否启用:
openssl speed aes-128-cbc
再对比:
openssl speed -evp aes-128-cbc
如果差异巨大,说明 AES-NI 没被使用。
解决:
OpenSSL 在生成密钥、证书时会取随机数。
/dev/random:阻塞/dev/urandom:非阻塞老版本 OpenSSL 或某些配置会卡在等熵。
检查:
cat /proc/sys/kernel/random/entropy_avail
如果长期 < 100,会非常慢。
解决:
rngdhavegedurandom很多人这样测速:
for i in {1..1000}; do
openssl ...
done
这是进程启动开销,不是算法慢。
正确方式:
openssl speed rsa2048
建议:
老写法:
RSA_* / AES_*
新写法(快):
EVP_*
EVP 会自动选择最优实现(AES-NI、多线程等)。
/dev/urandom表现:
生成证书、CSR 时会写文件:
也会影响感知速度。
查看:
openssl version
你可以按顺序检查:
openssl version
openssl speed aes-128-cbc
openssl speed -evp aes-128-cbc
cat /proc/sys/kernel/random/entropy_avail
lscpu | grep aes
你可以告诉我:
我可以给你针对性的优化方案。