Ispezionare il certificato di un sito tramite un proxy HTTP con OpenSSL
Usa OpenSSL s_client tramite un proxy HTTP CONNECT mantenendo coerenti nome della destinazione, SNI e verifica del certificato.
Usa un OpenSSL s_client installato che supporti -proxy. Per un endpoint HTTP CONNECT autorizzato:
openssl s_client -proxy proxy.example:3128 -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error -showcertsSostituisci l’indirizzo del proxy e usa in modo coerente il nome della destinazione previsto. Per testare una destinazione pubblica tramite un proxy che puoi scegliere, seleziona un candidato HTTP da elenco dei proxy HTTP. -connect seleziona la destinazione, -servername invia SNI per il suo host virtuale TLS e -verify_hostname verifica l’identità. SNI da solo non verifica il nome host. Consulta il manuale della versione installata quando adatti le opzioni.
-showcerts mostra ciò che il server ha inviato, non dichiara che la catena sia attendibile. -verify_return_error fa terminare l’handshake in caso di errori di verifica; altrimenti il client diagnostico può continuare dopo gli errori. Per un servizio privato usa materiale CA approvato invece di fidarti di un certificato scaricato a caso.
| Risultato | Fase |
|---|---|
| 407 | Autenticazione del proxy prima del TLS della destinazione. |
| Destinazione CONNECT negata | Politica della destinazione del proxy. |
| Certificato ricevuto e verifica tentata | Scambio TLS della destinazione attraverso il tunnel accettato. |
Con OpenSSL 3.x e un proxy HTTP con autenticazione Basic, usa le opzioni dell’account proxy di s_client mantenendo la verifica della destinazione.
Un endpoint solo SOCKS non fornisce l’interfaccia proxy HTTP usata da questo comando. Con intercettazione TLS autorizzata, il certificato mostrato può essere emesso da quell’intermediario. Confronta il suo emittente e l’assetto di attendibilità previsto prima di attribuire la differenza a un sito guasto.