Enable X509_V_FLAG_TRUSTED_FIRST by default in the legacy verifier.
authorjsing <jsing@openbsd.org>
Thu, 30 Sep 2021 18:23:46 +0000 (18:23 +0000)
committerjsing <jsing@openbsd.org>
Thu, 30 Sep 2021 18:23:46 +0000 (18:23 +0000)
In order to work around the expired DST Root CA X3 certficiate, enable
X509_V_FLAG_TRUSTED_FIRST in the legacy verifier. This means that the
default chain provided by Let's Encrypt will stop at the ISRG Root X1
intermediate, rather than following the DST Root CA X3 intermediate.

Note that the new verifier does not suffer from this issue, so only a
small number of things will hit this code path.

ok millert@ robert@ tb@

lib/libcrypto/x509/x509_vpm.c

index aaf0a57..42ea6e7 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: x509_vpm.c,v 1.26 2021/04/24 18:10:12 tb Exp $ */
+/* $OpenBSD: x509_vpm.c,v 1.27 2021/09/30 18:23:46 jsing Exp $ */
 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
  * project 2004.
  */
@@ -598,6 +598,7 @@ static const X509_VERIFY_PARAM_ID _empty_id = { NULL };
 static const X509_VERIFY_PARAM default_table[] = {
        {
                .name = "default",
+               .flags = X509_V_FLAG_TRUSTED_FIRST,
                .depth = 100,
                .trust = 0,  /* XXX This is not the default trust value */
                .id = vpm_empty_id