OpenSSL: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak

OpenSSL: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weakd

OpenSSL: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weakd

OpenSSL报错:ca md too weak(证书加密方法太弱)

场景:在使用openvpn时客户端报了这个错误,之后发现在其它vpn客户端中使用同一套客户端证书及密钥是可以与vpn服务器正常通信的。

查找错误原因:在百度上搜索报错信息,发现这有一个相关描述添加链接描述
按照描述中的信息,修改了VPN服务器中“密钥长度”(将密钥长度由1024改为2048)的配置,之后重新生成客户端证书及密钥,依然报这个错误。
然后在本次修改的基础上再次修改了VPN服务器中的“签名加密方法”的值(将签名加密方法由md5改为sha1),之后重新生成客户端证书及密钥,不再报错,客户端与服务器连接成功。

分析错误原因:造成这次错误的原因是因为客户端使用的OpenSSL的版本是“OpenSSL 1.1.1”在这个版本中OpenSSL去掉了对“MD5”加密算法的支持(MD5早已经不安全了,目前sha1也是不安全的,sha1正在向sha2过度)。

综上:造成这次报错了最终原因是证书加密方法不被“OpenSSL 1.1.1”支持,因此只要用被“OpenSSL 1.1.1”支持的加密算法重新生成客户端证书及密钥就可解决此问题。

注释:关于“密钥长度”的含义可参看添加链接描述

这个错误信息"OpenSSL: error:0A000086:SSL routines::certificate verify failed:"通常出现在使用OpenSSL库进行SSL/TLS连接时,证书验证失败的情况下。这个错误可能由多种原因引起,以下是一些常见的原因和解决方法: 1. 系统时间不正确: 解决方法:确保系统时间是准确的,可以与网络时间服务器同步。 2. 根证书缺失或过期: 解决方法:更新系统的根证书库,确保包含了最新的根证书。 3. 服务器证书过期或无效: 解决方法:检查服务器证书的有效期和签名,确保证书是有效的。 4. 中间证书缺失: 解决方法:确保服务器配置了完整的中间证书链。 5. 主机名不匹配: 解决方法:验证证书中的域名与实际访问的域名是否一致。 6. SNI(服务器名称指示)配置问题: 解决方法:确保客户端正确设置了SNI,特别是在使用虚拟主机的情况下。 7. 客户端或服务器配置问题: 解决方法:检查OpenSSL配置,确保正确设置了受信任的证书颁发机构。 8. 防火墙或中间人攻击: 解决方法:确保没有防火墙或中间设备在拦截和修改SSL流量。 要解决这个问题,可以尝试以下步骤: 1. 更新系统根证书库 2. 检查服务器证书的有效性 3. 验证客户端和服务器的OpenSSL配置 4. 使用OpenSSL命令行工具进行详细诊断 例如,可以使用以下命令来测试SSL连接: ``` openssl s_client -connect example.com:443 -showcerts ``` 这个命令会显示详细的SSL握手过程和证书信息,有助于进一步诊断问题。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值