当前位置:  开发笔记 > 编程语言 > 正文

Tomcat 6强大的SSL

如何解决《Tomcat6强大的SSL》经验,为你挑选了1个好方法。

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

我试过java的keytool和openssl.我尝试了各种参数,但似乎无法指定密钥大小,只是签名大小.

如何让browser-tomcat连接将AES-256与自签名证书一起使用?



1> delfuego..:

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不在列表中 - 根据这个JDK 5列表,这是你想要的密码.)

为了完整起见,这是我创建的用于检查我的盒子支持的密码的简短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可以使用更高位的加密级别; 你可以在这里找到这些文件(向下滚动并查看"其他下载"部分的顶部).我不确定JDK 6是否需要完成相同的操作,但是JDK 6的相同策略文件在这里可用,所以我认为它确实如此.解压缩该文件,阅读README以了解如何安装它们所属的文件,然后再次检查支持的密码......我打赌AES-256现在在列表中.

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

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有