【问题标题】:openssl s_client TLS connection through proxy with clientAuthopenssl s_client 通过代理与 clientAuth 的 TLS 连接
【发布时间】:2016-06-20 12:43:36
【问题描述】:

我想使用openssl s_client 使用 CONNECT 请求方法通过代理 (Squid) 打开到源服务器的 TLS 连接。我正在使用客户端证书连接到代理服务器,如下所示:

openssl s_client -connect my_proxy:4443 -CAfile /etc/ssl/ca/ca.crt -cert /etc/ssl/cert/client.crt -key /etc/ssl/key/client_key.pem

运行上述后,连接信息打印正常,然后我输入 CONNECT 和 GET 方法,这工作正常:

CONNECT www.google.com:80 HTTP/1.1 Host: www.google.com

HTTP/1.1 200 连接建立

GET /search?q=ip+address HTTP/1.1 Host: www.google.com

HTTP/1.1 200 正常

但是,我真的很想能够建立一个 TLS (https) 连接,但我无法让它工作:

CONNECT www.google.com:443 HTTP/1.1 Host: www.google.com

HTTP/1.1 200 连接建立

GET /search?q=ip+address HTTP/1.1

关闭

我在这里做错了什么?在您说尝试具有 -proxy 参数的 OpenSSL 1.1.x 之前,我已经尝试过了。请注意,上述命令中的 CA 证书、客户端证书和客户端密钥用于连接到我的代理服务器,而不是用于目标服务器 (google.com),如下所示,使用 OpenSSL 1.1.0-pre3(如果我尝试连接到 google:443)。

openssl s_client -connect google.com:80 -proxy my_proxy:4443 -CAfile /etc/ssl/ca/ca.crt -cert /etc/ssl/cert/client.crt -key /etc/ssl/key/client_key.pem

已连接(00000003)

s_client:HTTP CONNECT 失败

没有可用的对等证书

未发送客户端证书 CA 名称 SSL 握手已读取 0 个字节并写入 25 个字节 验证:好的

新,(无),密码是(无) 不支持安全重新协商 压缩:无 扩展:无 没有协商 ALPN

我能够将我的客户端证书、客户端密钥和 CA 证书加载到 Firefox 中(全部捆绑在一个 pkcs12 文件中),并且能够通过 TLS 连接到各种网站。这应该可以在命令行上实现。

【问题讨论】:

标签: http ssl https proxy openssl


【解决方案1】:

请注意,上述命令中的CA证书、客户端证书和客户端密钥是用于连接代理服务器的,而不是用于-connect服务器的。”

我对此表示怀疑。根据来源-proxy仅用于通过代理做隧道,即

  • 使 TCP 连接到给定的代理
  • 将目标从-connect参数发送到代理的CONNECT请求
  • 等待隧道建立的代理响应
  • 创建隧道时不涉及任何证书,应该是这样

这应该可以在命令行上实现。

这只能通过-proxy 选项实现。没有此选项的s_client 版本不能单独用于通过 HTTP 代理建立连接,因为根本没有实现必要的功能。您可以尝试将s_client 与其他提供必要隧道的工具一起使用,例如socat 或proxytunnel。

【讨论】:

  • 我已编辑问题以使用 -proxy 选项显示输出。我的证书用于连接到我的代理,而不是 google.com。唯一支持的身份验证代理隧道似乎是 user:pass 和 NTLM。我会看看,看看我的目标是否可以用 socat 完成。
  • @vic:我的猜测是代理本身需要 SSL(即代理设置为https://my_proxy:4433,而不是更常见的http://my_proxy:4433),否则直接s_client 到代理会没有成功。但是-proxy 参数不支持本身需要 SSL 的代理,并且大多数其他使用 HTTP 代理的软件也不支持它们。
猜你喜欢
  • 1970-01-01
  • 2015-02-09
  • 2011-03-14
  • 1970-01-01
  • 2014-11-03
  • 2013-10-10
  • 2023-02-14
  • 2015-09-13
  • 2020-09-05
相关资源
最近更新 更多