OpenSSL s_client via un proxy HTTP avec authentification de base
Utilisez les options proxy_user et proxy_pass d’OpenSSL tout en conservant la vérification du nom d’hôte de destination.
OpenSSL 3.x s_client fournit des options d’utilisateur de proxy et de source de mot de passe pour un proxy HTTP CONNECT. Pour un environnement qui exporte déjà PROXY_USER et PROXY_PASSWORD :
openssl s_client \
-proxy proxy.example.net:8080 \
-proxy_user "$PROXY_USER" \
-proxy_pass env:PROXY_PASSWORD \
-connect example.com:443 \
-servername example.com \
-verify_hostname example.com \
-verify_return_error
Les noms réels des options utilisent des traits de soulignement : -proxy_user et -proxy_pass. Le point de terminaison du proxy est host:port, tandis que connect et servername identifient la destination.
proxy_pass utilise la syntaxe de source de mot de passe d’OpenSSL. env:PROXY_PASSWORD lit la variable d’environnement nommée ; file:/path/to/file est une autre forme de source documentée. Un mot de passe nu n’est pas le même format d’argument.
Les options présentées demandent la vérification du certificat et du nom d’hôte, les erreurs de vérification étant considérées comme fatales. Fournissez la configuration CA appropriée, par exemple un CAfile requis, pour l’installation et la destination.
Cette authentification de proxy est une authentification de base. La connexion proxy présentée est du HTTP simple, donc la poignée de main TLS ultérieure de la destination ne chiffre pas cet échange de connexion antérieur. Elle ne met pas en œuvre une négociation de proxy NTLM ou Kerberos.