Inspecter le certificat d’un site Web via un proxy HTTP avec OpenSSL
Utilisez OpenSSL s_client via un proxy HTTP CONNECT en gardant le nom de destination, le SNI et la vérification du certificat cohérents.
Utilisez un OpenSSL s_client installé qui prend en charge -proxy. Pour un point de terminaison HTTP CONNECT autorisé :
openssl s_client -proxy proxy.example:3128 -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error -showcertsRemplacez l’adresse du proxy et utilisez systématiquement le nom de destination prévu. Pour tester une destination publique via un proxy que vous pouvez choisir, sélectionnez un candidat HTTP dans la liste des proxys HTTP. -connect sélectionne la cible, -servername envoie le SNI pour son hôte virtuel TLS et -verify_hostname vérifie l’identité. Le SNI seul ne vérifie pas le nom d’hôte. Consultez le manuel de la version installée lorsque vous adaptez les options.
-showcerts affiche ce que le serveur a envoyé, sans déclarer que la chaîne est approuvée. -verify_return_error fait terminer le handshake par les erreurs de vérification ; sinon, le client de diagnostic peut continuer après les erreurs. Pour un service privé, utilisez des éléments d’autorité de certification approuvés plutôt que de faire confiance à un certificat téléchargé arbitrairement.
| Résultat | Étape |
|---|---|
| 407 | Authentification du proxy avant le TLS de la destination. |
| Cible CONNECT refusée | Politique de destination du proxy. |
| Certificat reçu et vérification tentée | Échange TLS de la destination à travers le tunnel accepté. |
Avec OpenSSL 3.x et un proxy HTTP s’authentifiant avec Basic, utilisez les options de compte proxy de s_client tout en conservant la vérification de la destination.
Un point de terminaison uniquement SOCKS ne fournit pas l’interface de proxy HTTP utilisée par cette commande. Avec une interception TLS autorisée, le certificat affiché peut être émis par cet intermédiaire. Comparez son émetteur et le dispositif de confiance prévu avant d’attribuer la différence à un site défaillant.