如何在java中使用TLSv1.2

如何在java中使用TLSv1.2,java,tls1.2,Java,Tls1.2,我有一个使用TLS的java聊天应用程序,但当我使用Wireshark捕获数据时,协议列显示值“TCP”,为什么它不显示为“TLS”。我的代码怎么了 CertificateFactory cf = CertificateFactory.getInstance("X509"); X509Certificate cert = (X509Certificate) cf.generateCertificate( this.getClass().getResourceAsStream("/"+"l

我有一个使用TLS的java聊天应用程序,但当我使用Wireshark捕获数据时,协议列显示值“TCP”,为什么它不显示为“TLS”。我的代码怎么了

CertificateFactory cf = CertificateFactory.getInstance("X509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(
    this.getClass().getResourceAsStream("/"+"lib/ca.crt")
);

InputStream is=this.getClass().getResourceAsStream("/"+"lib/plainclient.jks");
KeyStore clientKeys = KeyStore.getInstance("JKS");
clientKeys.load(is,"xuanthinh".toCharArray());
KeyManagerFactory clientKeyManager = KeyManagerFactory.getInstance("SunX509");
clientKeyManager.init(clientKeys,"xuanthinh".toCharArray());

KeyStore ks = KeyStore.getInstance("JKS");
is=this.getClass().getResourceAsStream("/"+"lib/serverpub.jks");
ks.load(is,"xuanthinh".toCharArray());
TrustManagerFactory trustManager = TrustManagerFactory.getInstance("SunX509");
trustManager.init(ks);
//use keys to create SSLSoket
ssl = SSLContext.getInstance("TLS");
ssl.init(
    clientKeyManager.getKeyManagers(), trustManager.getTrustManagers(), 
    SecureRandom.getInstance("SHA1PRNG")
);

它们是不同的协议,在传输加密内容时使用这两种协议

阅读网络协议,因为这解释了每个协议相对于彼此的位置


TCP是第4层(传输层)的一部分,而TLS是第6层(表示层)的一部分。

它们是不同的协议,在传输加密内容时使用这两种协议

阅读网络协议,因为这解释了每个协议相对于彼此的位置


TCP是第4层(传输层)的一部分,而TLS是第6层(表示层)的一部分。

不确定从代码片段中使用的是什么客户端。但是使用Jersey/CXF执行此操作时,我通常只设置http.protocols值。此链接提供了一些有用的信息:

不确定从代码片段中使用的是什么客户端。但是使用Jersey/CXF执行此操作时,我通常只设置http.protocols值。此链接提供了一些有用的信息:

您使用的是哪个端口?您使用的是哪个端口?