使 JDK 支持 TLS_RSA_WITH_AES_256_CBC_SHA256 加密套件

为实现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目录下的原文件,最后重启程序或服务器以应用更改。

    最近,需要写一个支持 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
<think>好的,我需要回答用户关于WebLogic 9是否使用AES加密的问题。首先,我得确认WebLogic 9的版本发布时间和相关文档。WebLogic 9是2006年左右发布的,属于较旧的版本。接下来,我需要回忆或查找该版本支持加密算法,特别是SSL/TLS配置部分。AES作为常用的对称加密算法,通常被许多服务器支持,但旧版本可能有不同的默认设置或支持加密套件。 然后,我应该考虑WebLogic 9的默认加密套件以及是否包含AES。需要查阅官方文档或历史资料,确认在SSL配置中是否有AES相关选项。此外,可能涉及到JDK版本的影响,因为WebLogic依赖于Java加密库,旧版JDK可能对AES支持有限,尤其是密钥长度方面(如是否支持256位)。 另外,用户可能实际关心的是数据传输或存储中是否使用AES加密,比如密码加密、配置文件加密等。需要区分不同场景下的加密方式。例如,WebLogic的密码加密可能使用特定的算法,而SSL通信中的加密套件可能不同。 还要考虑用户可能遇到的常见问题,比如升级到更新版本后AES支持情况,或者在WebLogic 9中手动配置AES是否可行。可能需要指导用户如何检查当前配置,例如通过管理控制台查看SSL设置或加密套件列表。 最后,需要提醒用户WebLogic 9已经过时,存在安全风险,建议升级到受支持的版本。同时,确认回答的准确性,避免提供错误信息,比如如果WebLogic 9确实不支持AES,需要明确说明,并提供替代方案或解决方法。</think>WebLogic 9(发布于2006年)在加密支持方面存在以下特性: --- ### **一、AES加密支持情况** 1. **SSL/TLS协议支持** - 默认支持加密套件包含: $$ \text{RSA\_WITH\_AES\_128\_CBC\_SHA} $$ $$ \text{RSA\_WITH\_AES\_256\_CBC\_SHA} $$ - 但受限于**JDK版本**: - 需使用JDK 1.4.2_09+ 或 JDK 5.0+ - 256AES需安装JCE无限制强度策略文件 2. **非SSL场景的AES应用** - 密码加密:默认使用**3DES**而非AES - 配置文件加密:使用WebLogic私有算法(非标准AES) --- ### **二、关键限制** | 场景 | WebLogic 9限制 | |---------------------|----------------------------------------| | TLS 1.2支持 | 仅支持TLS 1.0(AES需手动配置) | | AES-GCM模式 | 不支持(仅CBC模式) | | FIPS 140-2合规性 | 不满足现代安全标准 | --- ### **三、验证方法** 1. **查看加密套件列表** 在管理控制台执行: ```bash java weblogic.Admin -url t3://localhost:7001 -username weblogic GET -pretty -type ServerSecurity ``` 输出中搜索`CipherSuites`字段 2. **测试连接** 使用OpenSSL检测实际协商算法: ```bash openssl s_client -connect localhost:7002 -cipher AES ``` --- ### **四、升级建议** 由于WebLogic 9已终止支持超过10年: - 安全风险:存在CVE-2015-4852等未修补漏洞 - 现代加密支持:建议升级到WebLogic 12c(12.1.3+)或14c - 默认支持TLS 1.2/1.3 - 支持AES-GCM、ECDHE密钥交换 --- ### **临时解决方案(不推荐)** 如需在WebLogic 9强制启用AES1. 修改`setDomainEnv.sh`: ```bash JAVA_OPTIONS="-Dweblogic.security.SSL.enforceConstraints=off -Dweblogic.security.SSL.minimumProtocolVersion=TLSv1" ``` 2. 自定义`JSSEProvider`配置(需替换JDK安全库) > **警告**:此类操作会降低系统安全性,仅建议在隔离环境中临时使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值