Skip to content

Commit 58e70cf

Browse files
committed
Follow the RFCs more closely in libpq server certificate hostname check.
The RFCs say that the CN must not be checked if a subjectAltName extension of type dNSName is present. IOW, if subjectAltName extension is present, but there are no dNSNames, we can still check the CN. Alexey Klyukin
1 parent 2df465e commit 58e70cf

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/interfaces/libpq/fe-secure-openssl.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -626,12 +626,13 @@ verify_peer_name_matches_certificate(PGconn *conn)
626626
sk_GENERAL_NAME_free(peer_san);
627627
}
628628
/*
629-
* If there is no subjectAltName extension, check the Common Name.
629+
* If there is no subjectAltName extension of type dNSName, check the
630+
* Common Name.
630631
*
631-
* (Per RFC 2818 and RFC 6125, if the subjectAltName extension is present,
632-
* the CN must be ignored.)
632+
* (Per RFC 2818 and RFC 6125, if the subjectAltName extension of type
633+
* dNSName is present, the CN must be ignored.)
633634
*/
634-
else
635+
if (names_examined == 0)
635636
{
636637
X509_NAME *subject_name;
637638

0 commit comments

Comments
 (0)