【问题标题】:Keytool - How to generate non self-signed certificates?Keytool - 如何生成非自签名证书?
【发布时间】:2015-05-30 14:41:16
【问题描述】:

keytool 生成的密钥库包含使用以下命令的自签名证书,这令人困惑:

keytool -genkey -keyalg RSA -keysize 1024 -keystore bob.keystore

生成自签名证书没有意义,因为您需要一个受信任的 CA 来签署您的证书请求。如何生成非自签名密钥库?

【问题讨论】:

    标签: java ssl keytool


    【解决方案1】:

    keytool -genkey 是一个双重操作:它生成一个密钥对,并将其包装在一个自签名证书中。 拥有这个自签名证书实际上只是一种方便,部分与存储格式有关,如果您想将该密钥对用于 CA 颁发的证书,这只是暂时的。

    您需要使用您在使用-genkey 时输入的信息(该信息最终在自签名证书中)从该密钥对中提取证书请求。重复使用您在 -genkey 中使用的别名:

    keytool -certreq -alias somename -file somename.csr -keystore mykeystore.jks
    

    将 CSR 发送给您的 CA,当您取回证书时,使用相同的别名重新导入它。这将使用keytool -importcert 覆盖最初生成的自签名证书。请注意,如果有中间证书,您可能需要一次导入整个链,如this answer 末尾所述。

    【讨论】:

      【解决方案2】:

      自签名证书在许多情况下都很有价值,例如应用程序实例之间的通信。在这种情况下,向 CA 支付签名证书的费用可能会非常昂贵。

      但是,如果您想要一个公认的 CA 的签名,则需要从 CA 获取您的证书。您不能仅使用 keytool 创建由公认 CA 签名的证书。在您选择的搜索引擎中搜索“SSL 证书”。大多数证书都是付费的,例如 GeoTrust。其他的,比如 StartSSL 或即将推出的 LetsEncrypt,要么是免费的,要么是免费的。

      【讨论】:

        猜你喜欢
        • 2016-12-30
        • 1970-01-01
        • 2019-04-18
        • 2014-04-09
        • 1970-01-01
        • 1970-01-01
        • 2017-12-11
        • 2011-01-13
        • 1970-01-01
        相关资源
        最近更新 更多