Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Feb 2021 15:13:43 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Benjamin Kaduk <kaduk@mit.edu>
Cc:        FreeBSD CURRENT <freebsd-current@freebsd.org>, Jung-uk Kim <jkim@FreeBSD.org>
Subject:   Re: openssl in head returning "certificate expired" when it has not expired
Message-ID:  <YQXPR0101MB09682CAA6C302C6F616FA98EDDB59@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM>
In-Reply-To: <20210202065010.GR21@kduck.mit.edu>
References:  <YQXPR0101MB09681F6F58AE1EF74B5F6998DDB69@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM> <20210202004849.GJ21@kduck.mit.edu> <YQXPR0101MB0968E7E25E12A033A1CB4937DDB59@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM>, <20210202065010.GR21@kduck.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help

Benjamin Kaduk wrote:
>On Tue, Feb 02, 2021 at 03:48:06AM +0000, Rick Macklem wrote:
>> Benjamin Kaduk wrote:
>> >On Tue, Feb 02, 2021 at 12:46:25AM +0000, Rick Macklem wrote:
>> >> I've recently been testing the daemons that do the
>> >> non-application data stuff for nfs-over-tls with the
>> >> openssl in head.
>> >>
>> >> These daemons work fine with both ports/security/openssl (openssl-1.1.1h)
>> >> and ports/security/openssl-devel (openssl3-alpha).
>> >>
>> >> However, when linked to the openssl in head, the basic handshake
>> >> and KTLS works, but the peer certificate from the client is reported
>> >> as expired by SSL_get_verify_result(), although it is still valid.
>> >> I added some debug output and the "notAfter" field of the
>> >> certificate looks correct, so the certificate doesn't seem to be
>> >> corrupted.
>> >>
>> >> I tried backporting the changes in crypto/x509 in head back
>> >> into ports/security/openssl and it still worked, so those changes
>> >> do not seem to have caused the problem.
>> >> There are several differences in the configured options, but I cannot
>> >> see any other differences between ports/security/openssl and
>> >> what is in head that could cause this.
>> >> (The options that differ seem related to old encryption types, etc.)
>> >>
>> >> Any other ideas for tracking this down?
>> >
>> >Is it perhaps related to https://github.com/openssl/openssl/issues/14036 ?
>> Well, it is definitely due to a change in behaviour between 1.1.1h and 1.1.1i.
>> I notices that ports/security/openssl has been upgraded to 1.1.1i and it
>> exhibits the "expired" behaviour.
>>
>> However, in my case, the certificate has not expired.
>> The notAfter date is in 2022, but SSL_get_verify_results() returns
>> X509_V_ERR_CERT_HAS_EXPIRED.
>
>Is there an expired CA in the chain?
Ouch, yes that's it. The root CA has expired.

>I suppose that reverting the commit from
>https://github.com/openssl/openssl/pull/11359 (linked from the issue) would
>probably be pretty easty to check.
I replaced x509_vfy.c with the one from openssl-1.1.1h and the problem went
away. (which I suspect is about the same thing)

Now I'll go and create a new root CA, etc and make sure it works with
openssl-1.1.1i and what is in head.

Thanks for the helpful comments, rick

-Ben




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YQXPR0101MB09682CAA6C302C6F616FA98EDDB59>