使用现有的Entrust证书进行Jetty SSL连接时出现问题

时间:2011-08-23 17:34:34

标签: ssl https jetty

我有三个来自Entrust的文件:* .csr,* .key和* .crt。

到目前为止:

  1. 我使用OpenSSL将* .key和* .crt带入PKCS12密钥库
  2. 我已使用keytool
  3. 将* .pkcs12导入密钥库
  4. 使用此技术,我可以使用与Jetty的SSL连接
  5. 但是,我在IE中收到证书错误(Chrome中的不安全项目)。

    在我们的例子中,证书当前正用于域:80(Apache),我正在尝试“重用”域名:8443(Jetty)。

    我认为我也可以将这些用于Jetty吗?在相同的IP /域上,但在不同的端口和Web服务器上?我的直觉告诉我,其中一个文件与Entrust识别Apache(* .csr)有关,我应该对Jetty做同样的事情吗?

    编辑#1

    错误如下:

    Certificate Error
    
    Untrusted Certificate
    
    The security certificate presented by this webiste was not issued by a trusted certificate authority
    
    This problem may indicate an attempt to fool you or intercept any data you send to the server.
    
    We recommend that you close this webpage.
    

    但Chrome认为它有效。我必须在IE上工作,因为它是我们的标准。

    编辑#2

    1. Chrome不会抱怨
    2. Firefox也不是
    3. 编辑#3

      我找到了Apache conf文件中指定的CA证书。然后我继续将我们的证书与CA证书连接成一个PKCS12文件。然后,使用keytool,我生成了密钥库。

      我将它加载到服务器上,重新启动并在IE中查看。 IE仍显示证书问题。

      在连接文件中,我按顺序看到:我们的证书,然后是其他2个证书。

      另一方面,我打电话给Entrust,CSR在使用IE 8时没有遇到任何问题。我们使用的是IE7。

      编辑#4

      使用此命令:

      keytool -list -keystore keystore -v
      

      它显示3个证书(按此顺序):

      1. 我们
      2. 所有者:CN = Entrust Certification Authority - L1C,
      3. 所有者:CN = Entrust.net证书颁发机构(2048)
      4. 编辑5

        解决!我想我有一个缓存问题。与同事确认。

        回答,将我的所有证书(包括CA证书)连接到密钥库中解决了我的问题。

1 个答案:

答案 0 :(得分:0)

注释中所述的端口号与信任SSL / TLS连接无关。

问题是从证书到Entrust根目录的整个证书链可能看起来像这样

your cert - intermediate CA 1 - intermediate CA 2 - ... - root CA

要使这项工作适用于IE,您不仅要将证书导入PKCS#12容器,还要导入中间证书和根证书。否则,您的SSL实现将无法在SSL握手期间提供完整路径,因此IE无法构建正确的链以与其受信任的根证书集进行比较。

所以我的建议是从相应的网站获取中间证书,并将keytool导入到您的PKCS#12密钥库中。

一旦完成,IE应该从此接受而不会抱怨。