s_client和gethostbyname失败

时间:2016-09-08 20:25:21

标签: ssl openssl x509 mutual-authentication pkix

我正在与外部公司合作。让我们称呼x。我想使用openssl来调试双向SSL握手。

  • evilcorp.com设置为不需要客户端身份验证。
  • https://evilcorp.com设置为要求客户端身份验证。

如何在openssl中指定此路径。所以基本上这是有效的:

https://evilcorp.com/webservices

但是这不起作用并且给了我 gethostbyname失败

openssl s_client -connect evilcorp.com:443 

如何才能使其发挥作用(如果可能)

2 个答案:

答案 0 :(得分:4)

地址中有一个非常简单的错误。这是修复:

“openssl s_client -connect evilcorp.com:443/webservice”

最后你有443 - 它需要直接进入域名。

答案 1 :(得分:2)

我不确定这是否可以完成,但如果可以完成,那么首先必须使用openssl连接到客户端主机并已指定客户端证书。然后在成功连接内部,您需要说HTTP以访问相关页面。

即。你先连接:

 $ openssl s_client -connect host:port -cert cert.pem -key key.pem
 ... CONNECTED
 ... Verify return code...
 ---

然后使用HTTP协议访问URL

 GET /protected_page/ HTTP/1.0
 Host: example.org
 <empty line>

请注意,根据HTTP协议,最后一行必须是空行。您可能还需要在openssl中使用-crlf选项,以便在您拥有严格的Web服务器时更正行结束。如果一切正常,服务器现在应该向客户端发出重新协商请求,即完成另一次TLS握手。