2017-03-07 110 views
0

我的Netty應用程序在JDK1.8上作爲TCP套接字服務器運行。 JDK 1.8支持TLS 1.0,TLS 1.1和TLS 1.2。如何強制netty服務器通過TLS 1.2進行通信?

我們希望在服務器端通過TLSv1.2強制實現TCP服務器和客戶端之間的通信(不需要使用低層協議)。

下面的代碼片段:

{ 
KeyStore ks = KeyStore.getInstance("JKS"); 
     ks.load(new FileInputStream("JKS location"), "password"); 
     KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); 
     kmf.init(ks, "password".toCharArray()); 
     SslContext sslContext = SslContextBuilder.forServer(kmf).build(); 
     pipeline.addLast(sslContext.newHandler(socketChannel.alloc())); 
} 

我們怎麼能強制網狀服務器通過僅TLS1.2協議進行通信?

回答

1

只需正確配置的SSLEngine:

SslHandler handler = sslContext.newHandler(socketChannel.alloc()); 
handler.engine().setEnabledProtocols(new String[] {"TLSv1.2"}); 
... 
+0

感謝諾曼。這是按預期工作的。 –

相關問題