2016-12-06 10 views
0

У меня есть приложение для чата java с использованием TLS, но когда я использую Wireshark для захвата данных, столбец протокола отображает значение «TCP», почему он не отображается как «TLS». Что случилось с моим кодом?Как использовать TLSv1.2 в java

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") 
); 
+0

Какой порт вы используете? – Frank

ответ

2

Это разные протоколы, и оба они используются при передаче зашифрованного контента.

Прочтите протокол OSI Model для сетевых протоколов, так как это объясняет, где каждый протокол находится относительно друг друга.

TCP является частью уровня 4 (транспортный уровень), а TLS является частью уровня 6 (уровень представления).