Certificate subject match validation

George-Theodor Serbana theodor.serbana96 at gmail.com
Sun Mar 29 10:00:03 UTC 2020


Yes, indeed I don't want to take into account the CN, only the SANs. Thanks
for the extra flag and all the clarifications!

Best regards,
Theodor


>
>
> > >  > For now I am using X509_VERIFY_PARAM_set1_host with
> SSL_CTX_set1_param to
> > >  > do this specific check.
> > >
> > >  That's the slightly less convenient legacy API from OpenSSL 1.0.2.
> > >  In 1.1.0 and later, you can use SSL_set1_host() (and in some
> > >  cases also SSL_add1_host()).
> > >
> > >  See the SSL_set1_host(3) manpage for details.
> >
> > Indeed I re-read the docs and it says that users should not assume that
> > hostnames are validated by default without explicitly calling the API, I
> > must've missed that bit and thank you for letting me know. I will shift
> > towards using the newer SSL_set1_host together with some flags (I don't
> > want any wildcards).
>
> If your needs are sufficiently narrow to rule out connecting to sites
> that use wildcard certificates, perhaps they're also narrow enough to
> rule out sites that don't have subjectAltNames, in which case the
> flags could be:
>
> So you'll call either of (here a NULL callback, set a non-null callback
> if appropriate):
>
>     SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);     /* Just once */
>     SSL_set_verify(ssl, SSL_VERIFY_PEER, NULL);         /* Per connection
> */
>
> followed by (per connection):
>
>     SSL_set1_host(ssl, "www.example.org");
>     SSL_set_hostflags(ssl, X509_CHECK_FLAG_NO_WILDCARDS
>                          | X509_CHECK_FLAG_NEVER_CHECK_SUBJECT);
>
> which also insists on a DNS subject altname (the preferred way to
> authenticate DNS names), and never looks at any CN field in the subject
> DN.
>
> > Now just to be extra safe I'm still asking: will the VERIFY_PEER option
> > together with SSL_set1_host instruct OpenSSL to perform all possible
> checks
> > on the certificate presented by the server such that no security breach
> > remains at this level? Is there anything else that I should call or
> perform
> > manually?
>
> No, the above is enough.
>
> --
>     Viktor.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20200329/990319bc/attachment-0001.html>


More information about the openssl-users mailing list