输入不是X.509证书即使转换为DER也无法工作

时间:2012-05-10 13:31:18

标签: keytool

首先,我已经看过帖子keytool error: java.lang.Exception: Input not an X.509 certificate。我无法在我的情况下应用相同的解决方案,这就是我发布此帖子的原因。当我尝试将我的PEM文件导入keytoo时,它说

keytool error:java.lang.Exception:输入的不是X.509证书

当我尝试使用openssl连接到具有-CAfile选项的服务器作为此PEM文件时。它与suxxessfully连接。

我将PEM文件转换为DER文件,如上文所述,

openssl x509 -outform der -in foo.pem -out foo.der

我将der文件成功导入到keytool中。但是当我尝试连接到可以使用openSSL中的PEM文件连接的服务器时,我无法连接。它正在抛出

at

javax.net.ssl.DefaultSSLSocketFactory.createSocket(Unknown Source)
        at com.ibm.net.ssl.www.protocol.https.b.b(Unknown Source)
        at com.ibm.net.ssl.www.protocol.http.cb.a(Unknown Source)
        at com.ibm.net.ssl.www.protocol.http.cb.p(Unknown Source)

我已经创建了一个新线程,以便立即引起你们的关注,因为它非常迫切。请帮助。

1 个答案:

答案 0 :(得分:0)

keytool仅支持单个证书PEM文件。它们不能包含-----BEGIN CERTIFICATE----------END CERTIFICATE-----括号之外的任何内容。

使用多部分PEM文件(例如ca-bundle.crt)时,您需要将每个证书提取到单独的文件中。在使用keytool

导入之前,没有必要将它们转换为DER

您还可以使用我的工具https://code.google.com/p/java-keyutil/,它可以将多部分PEM文件直接导入JKS文件。