【发布时间】:2017-05-11 21:32:25
【问题描述】:
我目前正在创建一个 Android 应用程序,它应该向服务器发送 POST 请求。不幸的是,服务器使用的是自签名证书。所以我必须创建一个包含 CA 证书的 PKCS12 密钥库,并让我的应用程序使用该密钥库。
要创建这样的密钥库,我目前正在使用以下命令:
keytool -import -trustcacerts -alias my-alias -file cacert.pem
-keystore mykeystorefile -storetype PKCS12
不幸的是,密钥库不起作用。 (SSL 握手请求失败。)
当我使用此命令检查密钥库时:
keytool -list -v -keystore mykeystorefile
我注意到这个列表的最后有一条奇怪的线。
#8: ObjectId: 2.5.29.18 Criticality=false
Unparseable IssuerAlternativeName extension due to
java.io.IOException: No data available in passed DER encoded value.
0000: 30 00 0.
*******************************************
*******************************************
Keytool 无法解析作为 CA 证书一部分的扩展。
我对 LetsEncrypt 的 CA 证书进行了同样的尝试,效果很好。
我很乐意提供有关如何处理和解决此问题的任何指示。
谢谢。
编辑:我目前使用的 Keytool 是 java-8-openjdk 的一部分。
Edit2: 所以在检查了 ca 证书之后,颁发者备用名称扩展名没有任何价值。想知道是否有办法跳过这些扩展?
【问题讨论】:
标签: certificate keytool self-signed