Apache2 SSL_ERROR_RX_RECORD_TOO_LONG问题排查及解决
Fixing Apache2 SSL_ERROR_RX_RECORD_TOO_LONG on Ubuntu (Apache/2.4.29 + OpenSSL 1.1.1d)
最近碰到了SSL_ERROR_RX_RECORD_TOO_LONG这个头疼的SSL错误,折腾了一圈终于解决了,分享下整个过程:
环境信息
- Apache版本:
Apache/2.4.29 (Ubuntu) - OpenSSL版本:
1.1.1d 10 Sep 2019
前期排查步骤(已全部验证无误)
我先把常规的配置检查都做了一遍,确保不是基础配置问题:
- 启用了目标站点配置:
a2ensite online.myurl.com.conf - 开启了SSL模块:
a2enmod ssl - 用
apache2ctl configtest验证配置语法,返回Syntax OK - 通过
apache2ctl -S查看虚拟主机状态,确认80端口的HTTPS跳转配置和443端口的SSL配置都已正确加载 - 仔细核对了
online.myurl.com.conf的内容:80端口配置了Redirect permanent / https://online.myurl.com/,443端口指定了正确的SSLCertificateFile、SSLCertificateKeyFile等SSL参数,没有语法错误
最终解决方法
所有配置都确认没问题后,试了这个OpenSSL命令重新哈希证书目录,执行完重启Apache,错误就消失了:
c_rehash /path/to/the/certs/
简单说下原理:这个命令会为证书目录里的所有证书文件生成对应的哈希符号链接,有时候这些链接会因为证书更新、目录迁移等原因失效,导致Apache/OpenSSL无法正确读取证书,重新生成后就能解决这类隐性的证书读取问题。
内容的提问来源于stack exchange,提问作者Eric STOCLET
相关产品推荐
相关产品推荐

