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 프록시 협상은 구현하지 않습니다.

관련 글