普通套接字与ssl套接字(相对于openSSL)有什么区别?
客户端是否可以连接到普通套接字上的服务器上的端口443(https),然后启动ssl握手?
答案 0 :(得分:2)
是。 OpenSSL的经典(非BIO)API旨在支持这种类型的使用,允许SSL / TLS会话随时附加到现有套接字。 HTTPS不是这种用法的一个很好的例子,因为HTTPS在连接时需要立即握手。更像是POP3或SMTP,它支持STARTTLS命令,在双方首先通过普通连接明确同意后,动态发起SSL握手。
答案 1 :(得分:1)
普通通信和SSL通信之间的唯一区别是协议。除了期望通过SSL协议进行通信之外,端口443也没有什么特别之处。
因此,客户端绝对可以使用任何特殊的连接到端口443,并且只要它们发送正确的字节(代表SSL握手的那些),任何侦听端口443上的SSL连接的服务器都将响应。 / p>
如果通过'plain socket'和'ssl socket'表示特定于API的内容,例如Java EncryptedSSLSocketConnection
,那么请澄清。