【问题标题】:Java keytool won't parse Extensions of my CA certificateJava keytool 不会解析我的 CA 证书的扩展
【发布时间】: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


    【解决方案1】:

    无法跳过证书上的任何内容。

    如果颁发者备用名称为空,则生成该证书的人生成错误。如果是自签名证书,则 Issuer Alternative Name 和 Subject Alternative Name 是相同的值。如果它由任何 CA 签名,则 CA 的 Subject Alternative Name 将放在最终用户的 Issuer Alternative Name 中。

    您可能需要向他们索取正确的 CA 证书。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2020-03-26
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      相关资源
      最近更新 更多