Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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 SSLSockets是否需要提供的SSL证书?_Java_Security_Networking_Ssl_Ssl Certificate - Fatal编程技术网

Java SSLSockets是否需要提供的SSL证书?

Java SSLSockets是否需要提供的SSL证书?,java,security,networking,ssl,ssl-certificate,Java,Security,Networking,Ssl,Ssl Certificate,在HTTPS技术中,安全连接需要SSL证书。此证书必须通过自生成或通过证书颁发机构(CA)获取 在Java中,SSLSocket到SSLSocket的连接承诺了与HTTPS连接相同的安全性(中间没有人,加密等) 连接在两个独立Java程序(一个客户端,一个服务器)中实例化的两个SSLSockets时,是否需要向Java(服务器)提供有效的证书 用于指定要使用哪个证书的方法有哪些?文档似乎对此没有任何说明 我这里说的是纯Java。我不是说使用Java通过HTTPS连接到web服务 这些套接字用于将

在HTTPS技术中,安全连接需要SSL证书。此证书必须通过自生成或通过证书颁发机构(CA)获取

在Java中,
SSLSocket
SSLSocket
的连接承诺了与HTTPS连接相同的安全性(中间没有人,加密等)

连接在两个独立Java程序(一个客户端,一个服务器)中实例化的两个
SSLSocket
s时,是否需要向Java(服务器)提供有效的证书

用于指定要使用哪个证书的方法有哪些?文档似乎对此没有任何说明

我这里说的是纯Java。我不是说使用Java通过HTTPS连接到web服务


这些套接字用于将用户名和密码从一个Java应用程序(客户端)发送到另一个Java应用程序(服务器),以进行身份验证,因此,它们必须尽可能安全。

如果您想要进行安全加密,您需要一个只有双方都知道的预共享密钥,或者您必须进行某种密钥交换来计算加密密钥。密钥交换需要正确的标识,否则就有可能实现安全的端到端加密

对于预共享密钥的使用,请注意TLS-PSK。在谷歌上搜索时,Android的实现似乎有一些成功之处,但主要是人们在问它是否可行。使用替代SSL实现BouncyCastle可能实现这一点

如果不使用PSK,您可以尝试使用匿名密码(ADH)。我不知道Java是否支持它们,但无论如何,您仍然需要有某种标识,以确保您正在与预期的服务器通信

当然还有证书。如果不想在应用程序中使用公共证书,可以将自签名证书与一起使用

在HTTPS技术中,安全协议需要SSL证书 连接。此证书必须通过自生成获得, 或通过证书颁发机构(CA)。在Java中,用于 SSLSocket连接承诺与HTTPS连接具有相同的安全性 (中间没有人,加密等)

否:HTTPS=通过SSL套接字的HTTP流量

在连接两个单独的SSLSocket中实例化的两个SSLSocket时, 独立Java程序(一个客户端,一个服务器),是否需要 是否向Java(服务器)提供有效的证书? 是-证书和私钥。如果您想要双向SSL,客户端还需要自己的一组密钥/证书

用于指定要使用哪个证书的方法有哪些?这个 文档似乎对此没有任何说明

有很多地方需要覆盖。我不确定您已经知道多少,您需要阅读的内容包括keytool、KeyStore、SSLContext、SSLServerSocketFactory、KeyManager

或者你可以直接去看一些例子,比如

连接在两个独立Java程序(一个客户端,一个服务器)中实例化的两个SSLSocket时,是否需要向Java(服务器)提供有效的证书

在正常使用中,服务器(以
SSLServerSocket
结尾)需要对等方信任的证书

仅当服务器配置为需要证书时,客户端才需要证书,这不是默认情况

用于指定要使用哪个证书的方法有哪些?文档似乎对此没有任何说明

看。您可以通过系统属性执行此操作。您也可以编写一英尺左右的代码,但这不是必需的