【Netty】创建一个 SSL 处理器,实现客户端与服务器之间的安全通信
作用:
- 建立客户端与代理服务器之间的安全连接
- 确保传输数据的机密性和完整性
- 验证服务器身份,防止中间人攻击
public static ChannelHandler createSslHandler(ProxyConfig proxyConfig) {try {InputStream jksInputStream = FileUtil.getInputStream(proxyConfig.getTunnel().getJksPath());SSLContext clientContext = SSLContext.getInstance("TLS");final KeyStore ks = KeyStore.getInstance("JKS");ks.load(jksInputStream, proxyConfig.getTunnel().getKeyStorePassword().toCharArray());TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());tmf.init(ks);TrustManager[] trustManagers = tmf.getTrustManagers();clientContext.init(null, trustManagers, null);SSLEngine sslEngine = clientContext.createSSLEngine();sslEngine.setUseClientMode(true);return new SslHandler(sslEngine);} catch (Exception e) {log.error("create SSL handler failed", e);e.printStackTrace();}return null;}