【问题标题】:Adding an SAN to an SSL cert (in Java) [duplicate]将 SAN 添加到 SSL 证书(在 Java 中)[重复]
【发布时间】:2011-08-24 17:23:50
【问题描述】:

我想创建一个设置了 SAN 字段(主题备用名称)的自签名证书,但 Java keytool 工具似乎不支持这一点。我最好的选择是什么?这是供 Java 使用的,因此即使使用非 Java 工具创建证书,密钥库仍必须与 JKS 格式匹配。

【问题讨论】:

    标签: java ssl


    【解决方案1】:

    您可以通过在创建 CSR 时将 SAN 功能添加到命令中来做到这一点:

    创建密钥库:

    keytool -genkey -alias SANTEST -keyalg RSA -keystore SANTEST.jks -keysize 2048
    

    发布 CSR:

    keytool -certreq -alias SANtest01 -keystore SANTEST.jks -ext san=dns:san.yourdomain.com -keysize 204
    

    http://download.java.net/jdk8/docs/technotes/tools/solaris/keytool.html

    【讨论】:

      【解决方案2】:

      您只能使用 JDK7 或更高版本的 keytool 执行此操作。 OpenJDK 7 有。

      【讨论】:

        【解决方案3】:

        听起来获取更新的 keytool 可能最简单,但您也可以使用 openssl 和 import that into keytool 创建具有备用名称集的证书。

        【讨论】:

        • 好点,可能有很多关于如何在 google 上使用 openssl 的示例。
        • openssl 使用不同的格式,如果我没记错的话,所以你有额外的转换麻烦。一旦你知道什么是什么以及如何做,也许没什么大不了的,但弄清楚这些安全问题是一个真正的麻烦。
        • 谢谢 - 如果你没有使用我的建议,你应该接受你自己的答案,而不是我的!
        【解决方案4】:

        JDK7 建议不错。与此同时,我可以使用 Bouncy Castle 库来做到这一点。以编程方式而不是使用 keytool 来实现这一点很有教育意义,并且以 jks 格式获取商店很简单。

        【讨论】:

          【解决方案5】:

          您可以使用http://Ssltools.com/manager 创建 San 证书并将其导出,然后将其导入密钥库。

          keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore my-keystore.jks -srckeystore cert-and-key.p12 -srcstoretype PKCS12 -srcstorepass cert-and-key-password -alias 1

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-02-01
            • 2012-12-25
            • 1970-01-01
            • 1970-01-01
            • 2020-09-22
            • 2017-04-21
            相关资源
            最近更新 更多