Usiamo WinHTTP per inviare chiamate API dal nostro client. Ora in base al criteri comuni, FCS_TLSC_EXT.1.2 attività di verifica Test 2, se certificato contiene un CN valido (nome comune) ma una SAN non valida (Nome alternativo oggetto), la connessione dovrebbe fallire.
Test 2: The evaluator shall present a server certificate that contains a CN that matches the reference identifier, contains the SAN extension, but does not contain an identifier in the SAN that matches the reference identifier. The evaluator shall verify that the connection fails. The evaluator shall repeat this test for each supported SAN type.
strumento che stiamo utilizzando per generare un certificato con CN valido ma SAN non valida .
Tuttavia, con WinHTTP e il pacchetto di richieste python, accettano la SAN non valida (che non dovrebbe accadere). Non sembra esserci alcuna documentazione su WinHTTP su come questo possa essere gestito. questa è l'implementazione interna di WinHTTP.
Anche Internet Explorer fallisce questo test e accetta la connessione. Tuttavia, Chrome rifiuta la connessione e conferma che il certificato non è valido (che è il comportamento richiesto):
Il test fallisce anche con la libreria di richieste di python.
Stiamo cercando in qualche modo se questo può essere modificato per verificare il problema. Oppure siamo noi che affrontiamo il problema?
Poiché entrambe le librerie python e windows sono usate comunemente, questo comportamento è comune? Qualcun altro ha riscontrato questo problema?
Voglio sapere se questo è il modo in cui WInHTTP implementa il controllo SAN, o è solo la nostra implementazione. Inoltre, non sono riuscito a trovare alcuna documentazione su MSDN per quanto riguarda il controllo SAN in WinHTTP.