代码之家  ›  专栏  ›  技术社区  ›  lindelof

将THAUTE试用证书导入Java密钥库

  •  7
  • lindelof  · 技术社区  · 15 年前

    我正在尝试用ssl配置tomcat服务器。我生成了一个密钥对,因此:

    $ keytool -genkeypair -alias tomcat -keyalg RSA -keystore keys
    

    接下来生成证书签名请求:

    $ keytool -certreq -keyalg RSA -alias tomcat -keystore keys -file tomcat.csr
    

    然后我复制粘贴 tomcat.csr 在Thawte网站上的一个表单中,请求一个试用的SSL证书。作为回报,我得到了两个以 -----BEGIN ... -----END ,我把它保存在 tomcat.crt thawte.crt . (thawte将第二个证书称为“thawte test ca root”证书)。

    当我尝试导入其中任何一个时失败:

    $ keytool -importcert -alias tomcat -file tomcat.crt -keystore keys
    Enter keystore password:
    keytool error: java.lang.Exception: Failed to establish chain from reply
    
    $ keytool -importcert -alias thawte -file thawtetest.crt -keystore keys
    Enter keystore password:
    keytool error: java.lang.Exception: Input not an X.509 certificate
    

    添加 -trustcacerts 这些命令的选项也不会更改任何内容。

    你知道我在这里做错了什么吗?

    3 回复  |  直到 14 年前
        1
  •  14
  •   lindelof    15 年前

    我终于明白这里发生了什么。我从Thawte得到的回复格式是pkcs 7,而 keytool 需要X.509格式的证书。

    openssl 可用于将证书从一种格式转换为另一种格式:

    $ openssl pkcs7 -in thawtetest.crt -print_certs |
      openssl x509 > thawtetest.x509
    

    现在您可以导入 thawtetest.x509 用钥匙工具,和 tomcat.crt 就在它后面。

        2
  •  0
  •   Shadowman    14 年前

    只要使用的是最新版本,就应该可以使用keytool导入pkcs 7链。也可以将证书导出到不同的文件中,但是如果您运行的是最新版本的keytool,那么导入pkcs 7文件本身应该没有问题。

        3
  •  0
  •   Paul Jowett    14 年前

    遇到了同样的麻烦 this post 这帮了我的忙。我把收到的试用证书放在一个文件里,用keytool导入making 确定我使用的别名(keytool-alias param)不同 (即与为请求创建证书时使用的别名不同)。这是一个奇怪的错误消息,因为它根本不喜欢您尝试导入到同一个别名。