最近,需要写一个支持 TLS 加密通讯的转发程序。
采用 Netty 框架。
客户端一方提出,需要使用采用 TLS_RSA_WITH_AES_256_CBC_SHA256 的 ciphersuite 进行加密。
于是,在 Netty 中设置,
private final String[] CIPHERSUITES = {"TLS_RSA_WITH_AES_256_CBC_SHA256"} ;
........
SSLEngine engine = context.createSSLEngine() ;
........
engine.setEnabledCipherSuites(CIPHERSUITES);
以上代码运行,会出现以下的异常:
[WARN][2016-03-31 14:26:34,259][io.netty.channel.ChannelInitializer]Failed to initialize a channel. Closing: [id: 0xa2bfcce4, /0:0:0:0:0:0:0:1:61998 => /0:0:0:0:0:0:0:1:4443]
java.lang.IllegalArgumentException: Cannot support TLS_RSA_WITH_AES_256_CBC_SHA256 with currently installed providers
at sun.security.ssl.CipherSuiteList.<init>(CipherSuiteList

为实现TLS加密通讯,使用Netty框架并针对客户端要求的TLS_RSA_WITH_AES_256_CBC_SHA256 ciphersuite进行配置。通过下载并替换JDK的JCE包,具体步骤包括下载对应版本的JCE,解压获取local_policy.jar和US_export_policy.jar,然后替换%JAVA_HOME%/jre/lib/security目录下的原文件,最后重启程序或服务器以应用更改。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



