【问题标题】:get the ssl certificate of openvpn server on tcp port [closed]在 tcp 端口上获取 openvpn 服务器的 ssl 证书 [关闭]
【发布时间】:2016-01-09 03:27:25
【问题描述】:

轻松获取HTTPS端口(默认443)的ssl证书

但是 tcp 端口上的 ssl 怎么样?

活生生的例子:

205.185.198.226:1194

这是在端口 1194 上运行的 vpn(openvpn 服务器)

IP 205.185.198.226 在端口 1194 上使用 ssl/tls 来处理基于证书的客户端身份验证方法

正如 Steffen Ullrich 所说:

OpenVPN 不是普通的 SS,而是将 SSL 流打包在自己的内部 协议,见https://openvpn.net/index.php/open-source/documentation/security-overview.html 因此 你必须先说封装协议,然后才能使用 TLS 然后包含证书的流。

那么,真的可以在tcp端口上获取openvpn服务器的ssl证书吗?任何示例代码? (PHP、C 或 Perl)

【问题讨论】:

  • 如果尝试使用 ssl://198.293.28.44:2018 有什么区别?
  • @Doon 没有区别。
  • 有没有可能从php调用openvpn,带有一些调试开关?

标签: ssl openvpn


【解决方案1】:
$url = "tcp://198.203.28.44:2018";

我不知道这个 ip:port 使用什么协议,但要么它不是 SSL,要么服务器不接受 SSL 握手中的常用参数。

$ openssl s_client -connect 198.203.28.44:2018 -debug
CONNECTED(00000003)
write to 0x17e1490 [0x17e1a20] (295 bytes => 295 (0x127))
...
read from 0x17e1490 [0x17e6f80] (7 bytes => 0 (0x0))
...SSL routines:SSL23_WRITE:ssl handshake failure:...

客户端使用 ClientHello(295 字节)启动 SSL 握手。服务器仅关闭连接,而不是通过握手(0 字节)进行回复。

由于没有成功的 SSL 握手,您无法获得连接证书,即服务器没有发回任何内容,这也意味着没有发送任何证书。

【讨论】:

  • 再贴近一点,这是运行在2018端口的vpn(openvpn服务器)
  • @user2203703:OpenVPN 不是普通的 SS,而是将 SSL 流打包到自己的协议中,请参阅 openvpn.net/index.php/open-source/documentation/…。因此,您必须先了解封装协议,然后才能访问包含证书的 TLS 流。
  • 所以,您认为这很难或几乎不可能做到,对吧?我花了很多时间搜索并试图找到一个好的答案。
  • @user2203703:难度和可能性取决于您的知识、对 OpenVPN 协议的经验以及您拥有的时间。这绝对是可行的,否则 OpenVPN 会遇到问题。我不知道 PHP 是否可行,因为我不知道您是否可以访问 OpenSSL 库的低级函数。但我敢肯定,您尝试过的简单高级方法是不可行的。
  • 我希望你是 PH​​P 程序员!您认为按照相同的步骤也可以在 udp 端口​​上获取证书吗?
猜你喜欢
  • 1970-01-01
  • 2012-01-16
  • 2015-08-10
  • 2015-01-27
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 2018-02-26
  • 2020-03-24
相关资源
最近更新 更多