기본 인증을 사용하는 HTTP 프록시를 통한 OpenSSL s_client
대상 호스트 이름 검증을 켜 둔 채 OpenSSL의 proxy_user 및 proxy_pass 옵션을 사용하세요.
OpenSSL 3.x s_client는 HTTP CONNECT 프록시를 위한 proxy-user 및 비밀번호 원본 옵션을 제공합니다. 이미 PROXY_USER와 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
실제 옵션 이름은 밑줄을 사용합니다. -proxy_user와 -proxy_pass입니다. 프록시 엔드포인트는 host:port이며, connect와 servername이 대상을 식별합니다.
proxy_pass는 OpenSSL의 비밀번호 원본 문법을 사용합니다. env:PROXY_PASSWORD는 지정된 환경 변수를 읽고, file:/path/to/file은 문서화된 또 다른 원본 형식입니다. 접두사 없는 비밀번호는 같은 인수 형식이 아닙니다.
표시된 옵션은 인증서 및 호스트 이름 검사를 요청하며, 검증 오류는 치명적으로 처리됩니다. 설치와 대상에 맞는 CA 구성을 제공하세요. 예를 들어 필요한 CAfile이 있습니다.
이 프록시 인증은 기본 인증입니다. 표시된 프록시 연결은 일반 HTTP이므로 대상의 이후 TLS 핸드셰이크는 그 이전 로그인 교환을 암호화하지 않습니다. NTLM이나 Kerberos 프록시 협상은 구현하지 않습니다.