Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SSLSocket是否也用于不安全的http?_Java_Ssl_Https_Certificate_Jsse - Fatal编程技术网

Java SSLSocket是否也用于不安全的http?

Java SSLSocket是否也用于不安全的http?,java,ssl,https,certificate,jsse,Java,Ssl,Https,Certificate,Jsse,我是否可以将SSLServerSocket类用于http和https会话,并侦听一个端口(通过自动检测,客户机附带http或https)?或者必须打开两个端口,并将SSLServerSocket用于https,将ServerSocket用于http 谢谢您正在尝试的是端口统一。举个例子 您不能直接使用SSLServerSocket来监听HTTP和HTTPS通信,因为它会在读取时直接启动握手,但您可以使用普通的ServerSocket,接受普通的Socket,尝试通过读取前几个字节来检测何时收到T

我是否可以将SSLServerSocket类用于http和https会话,并侦听一个端口(通过自动检测,客户机附带http或https)?或者必须打开两个端口,并将SSLServerSocket用于https,将ServerSocket用于http


谢谢

您正在尝试的是端口统一。举个例子

您不能直接使用
SSLServerSocket
来监听HTTP和HTTPS通信,因为它会在读取时直接启动握手,但您可以使用普通的
ServerSocket
,接受普通的
Socket
,尝试通过读取前几个字节来检测何时收到TLS客户端hello或HTTP请求,然后重试

我不能说我试过使用
Socket
s,但是您需要一些东西来提前阅读TLS客户端Hello,并在必要时将其推回

(据我所知,灰熊使用
SSLEngine
而不是
SSLSocket
进行此操作。)


注意,使用端口统一是非常不寻常的。我不确定提前阅读的开销是多少。使用多个端口通常不是问题(此外,HTTP和HTTPS具有不同的默认端口,因此您必须至少在两个URL中的一个中指定端口)。

您希望通过
SSLServerSocket与端口443上的客户端进行HTTP对话。
?如果这是可能的话,我会非常惊讶,但一定要亲自尝试。请检查一下我曾经给出的答案,它可能会有所帮助。