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”支持的加密算法重新生成客户端证书及密钥就可解决此问题。
注释:关于“密钥长度”的含义可参看添加链接描述