很容易获得HTTPS端口的ssl证书(默认为443)
但是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)
答案 0 :(得分:5)
$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握手,您无法获得连接证书,即服务器没有发回任何内容,这也意味着没有发送证书。