tomcat - Tomcat 6 的强 SSL

标签 tomcat ssl aes

我正在尝试创建一个用于 Apache Tomcat 6 的自签名证书。我可以制作的每个证书总是会导致浏览器与 AES-128 连接。客户希望我证明我可以在 AES-256 上创建连接。

我试过 java 的 keytool 和 openssl。我尝试了各种参数,但似乎无法指定有关 key 大小的任何信息,只能指定签名大小。

如何让浏览器-tomcat 连接使用带有自签名证书的 AES-256?

最佳答案

Okie doke,我想我刚刚弄明白了。

正如我上面所说,关键知识是证书并不重要,只要它是使用支持 AES 256 位加密的算法(例如 RSA)生成的即可。为了确保我们在同一页面上,为了进行测试,我使用以下方法生成了我的自签名证书:

keytool -genkey -alias tomcat -keyalg RSA

现在,您必须确保服务器上的 Java 实现支持 AES-256,这是棘手的一点。我在 OS X (OS 10.5) 机器上进行了测试,当我检查它默认支持的密码列表时,AES-256 不在列表中,这就是为什么我只使用上面生成的证书的原因在我的浏览器和 Tomcat 之间创建 AES-128 连接。 (好吧,从技术上讲,TLS_RSA_WITH_AES_256_CBC_SHA 不在列表中——根据 this JDK 5 list,这就是您想要的密码。)

为了完整性,这是我创建的简短 Java 应用程序,用于检查我的盒子支持的密码:

import java.util.Arrays;
import javax.net.ssl.SSLSocketFactory;

public class CipherSuites {
  public static void main(String[] args) {
    SSLSocketFactory sslsf = (SSLSocketFactory) SSLSocketFactory.getDefault();
    String[] ciphers = sslsf.getDefaultCipherSuites();
    Arrays.sort(ciphers);
    for (String cipher : ciphers) {
      System.out.println(cipher);
    }
  }
}

事实证明,这个 OS X 机器默认安装的 JDK 5 需要安装“Unlimited Strength Jurisdiction Policy Files”,以便告诉 Java 可以使用更高位的加密级别;你可以find those files here (向下滚动并查看“其他下载”部分的顶部)。我不确定 JDK 6 是否需要完成相同的事情,但 JDK 6 需要相同的策略文件 are available here ,所以我认为是的。解压缩该文件,阅读自述文件以了解如何将文件安装到它们所属的位置,然后再次检查您支持的密码...我敢打赌 AES-256 现在在列表中。

如果是,你应该是金色的;只需重新启动 Tomcat,连接到您的 SSL 实例,我敢打赌您现在会看到一个 AES-256 连接。

关于tomcat - Tomcat 6 的强 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/92504/

相关文章:

linux - 无法从 guest 虚拟机上的 tomcat 获取 http(nat 连接)

android - TCPDUMP - 捕获 Android HTTPS 数据

java - 2way ssl 与 java

php - 如何重定向到需要特定证书才能访问的 https

javascript - Google CryptoJS AES 结果太长 1 个区 block

java - 外部化 Oracle JRE 的不受限制的 key 强度策略文件

tomcat - Tomcat 8如何实现热部署?

java - 如何从 jar 文件加载 Spring 上下文 xml

java - aes 加密 - 内容大小不是 16 字节的倍数

java - Intellij 内置应用服务器