Re: certificate validation fails for trusted self-signed server certificate
Cosmin Banu <[email protected]> Thu, 7 Aug 2025 02:43:06 -0700 (PDT)
| Newsgroups | gmane.comp.encryption.openssl.user |
|---|---|
| Message-ID | <[email protected]> |
That was it, the certificate was different! I took a snapshot of the certificate a few days ago and it is still valid (not expired), but yesterday they replaced it with a fresh one. Thank you for the help, much appreciated! On Thursday, August 7, 2025 at 5:25:54 AM UTC+3 Viktor Dukhovni wrote: > On Wed, Aug 06, 2025 at 09:05:33AM -0700, Cosmin Banu wrote: > > > I have encountered a scenario with unexpected behavior when trying to > > connect an SSL client (custom client application) to a server that is > > configured with a self-signed server certificate (it's not marked as CA, > > it's a leaf certificate) - more specifically, the server I'm testing > > against is: > > https://self-signed.badssl.com/ > > > > I've configured the client by loading the server's certificate in an > > X509_STORE and then set that store on the SSL_CTX and I've set the > verify > > mode to SSL_VERIFY_PEER. > > > > The error I'm getting is X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT (error > > code 18: "self-signed certificate"). The documentation for this error > > suggests even more that this should not happen, since the certificate > > was loaded into the store: > > > https://github.com/openssl/openssl/blob/openssl-3.5/doc/man3/X509_STORE_CTX_get_error.pod?plain=1#L193 > > "The passed certificate is self-signed and the same certificate cannot > > be found in the list of trusted certificates." > > It is perhaps the case that the server certificate loaded into the trust > store is not completely identical with that presented over the wire, > perhaps an older or different certificate with the same subject name is > used on either end. > > > Is there something I'm missing? Some other configuration option? Or is > this > > the expected behavior? > > This works for me (with either the stock OpenSSL 3.2 from Fedora, or > OpenSSL 3.5 as below): > > $ PATH=/opt/openssl/3.5/bin:$PATH > $ rm /tmp/ck.pem > $ openssl req -nodes -new -newkey ed25519 -keyout /dev/stdout \ > -x509 -days 30 -subj / \ > -addext "basicConstraints = critical,CA:false" \ > -addext "subjectKeyIdentifier = none" >> /tmp/ck.pem > > $ openssl s_server -cert /tmp/ck.pem -accept 127.0.0.1:12345 -quiet > -no_ign_eof & > > $ sleep 1 | openssl s_client -CAfile /tmp/ck.pem -connect 127.0.0.1:12345 > -quiet -no_ign_eof -showcerts > Connecting to 127.0.0.1 > Can't use SSL_get_servername > depth=0 > verify return:1 > DONE > > $ openssl x509 -in /tmp/ck.pem -noout -text \ > -certopt > no_header,no_version,no_serial,no_signame,no_issuer,no_validity,no_subject,no_pubkey,no_sigdump > X509v3 extensions: > X509v3 Authority Key Identifier: > 77:E1:C8:B6:23:4A:6C:5B:DE:7F:32:25:16:3C:64:3B:78:32:14:13 > X509v3 Basic Constraints: critical > CA:FALSE > > The CA bit can be either "TRUE" or "FALSE", the SKID either present or > absent, all the combinations work, provided the exact certificate > presented by the server appears in the trust store. > > -- > Viktor. 🇺🇦 Слава Україні! > -- You received this message because you are subscribed to the Google Groups "openssl-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to openssl-users+unsubscribe-MCmKBN63+Bmbup2nOX2J7Q@public.gmane.org To view this discussion visit https://groups.google.com/a/openssl.org/d/msgid/openssl-users/4f94d06c-d3d3-4501-909d-47d3143b3baan%40openssl.org.