注意:这不是openssl s_client using a proxy的副本,因为我对代理身份验证特别感兴趣,而不是使用代理的能力。
我正在使用openssl s_client
检查目标服务器的证书,以了解连接的工作方式/位置。因为我在公司代理后面,所以我可以使用-proxy
标志指定代理服务器,但是我需要将身份验证详细信息(用户名/密码)传递给该代理-而且我还没有弄清楚该怎么做。
openssl s_client -proxy my.proxy.server:8080 -connect my.target.host
成功连接到代理服务器,但是可以理解的是,会导致
s_client: HTTP CONNECT failed: 407 Unauthorized
错误。以
user:pass@my.proxy.server
或http://user:pass@my.proxy.server
的形式传递代理服务器均会导致s_client: -proxy argument malformed or ambiguous
错误。如何将代理身份验证传递给s_client?我很难相信它支持代理但不支持经过身份验证的代理。
我正在使用openssl版本1.1.1a。
最佳答案
您可以使用从内部网逃脱https://github.com/quaddy-services/escape-from-intranet#introduction
并指定
主机= my.proxy.server
端口= 8080
在应用程序中使用
openssl s_client -proxy localhost:3128 -connect my.target.host
并且您本地运行的应用程序将使用您的凭据丰富实际的代理调用。(如果您有透明代理,则需要在“决策”菜单中将默认代理决策切换为“代理”)
关于使用s_client的代理身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56109030/