OpenVPN で X509_V_ERR_CA_MD_TOO_WEAK

12.0-RELEASE にしたら /usr/src/crypto/openssl の openssl 1.0.2o -> 1.1.1a の影響を受けて
Signature Algorithm: md5WithRSAEncryption
の証明書がサーバー側で弾かれるようになった。

VERIFY ERROR: depth=0, error=CA signature digest algorithm too weak: CN=XX

サーバー側で対応したい。
参考。 https://github.com/fabio-d/openvpn-MD5-hack ありがとうございます。

サーバー側の設定ファイルに tls-cert-profile "legacy_md5" を足して

# cat /usr/ports/security/openvpn/files/patch-src_openvpn_ssl__openssl.c
--- src/openvpn/ssl_openssl.c.orig      2019-02-20 12:28:23 UTC
+++ src/openvpn/ssl_openssl.c
@@ -499,6 +499,10 @@ tls_ctx_set_cert_profile(struct tls_root_ctx *ctx, con
         SSL_CTX_set_security_level(ctx->ctx, 3);
         SSL_CTX_set_cipher_list(ctx->ctx, "SUITEB128");
     }
+    else if (0 == strcmp(profile, "legacy_md5"))
+    {
+        SSL_CTX_set_security_level(ctx->ctx, 0);
+    }
     else
     {
         msg(M_FATAL, "ERROR: Invalid cert profile: %s", profile);
もちろんクライアント側の証明書を配布しなおせればよいんですけど。

コメントする

perl adv
perl adv