首先,我已经看过帖子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)
我已经创建了一个新线程,以便立即引起你们的关注,因为它非常迫切。请帮助。
答案 0 :(得分:0)
keytool仅支持单个证书PEM文件。它们不能包含-----BEGIN CERTIFICATE-----
和-----END CERTIFICATE-----
括号之外的任何内容。
使用多部分PEM文件(例如ca-bundle.crt)时,您需要将每个证书提取到单独的文件中。在使用keytool
导入之前,没有必要将它们转换为DER您还可以使用我的工具https://code.google.com/p/java-keyutil/,它可以将多部分PEM文件直接导入JKS文件。