我正在创建一个Android应用程序,应用程序应该向服务器发送POST请求。不幸的是,服务器正在使用自签名证书。所以我必须创建一个PKCS12密钥库,它将包含CA证书,并使我的应用程序使用该密钥库。Java keytool不会解析我的CA证书的扩展
要创建这样一个密钥,我目前使用下面的命令:
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的一部分。
编辑2:因此,检查CA证书后,发行人替代名称扩展没有任何价值。想知道是否有办法如何跳过这些扩展?