【问题标题】:How to add multiple key usages to a certificate when using Java keytool使用 Java keytool 时如何将多个密钥用法添加到证书
【发布时间】:2017-10-04 14:25:22
【问题描述】:

在使用 java keytool 生成证书时,我正在尝试向证书添加多个密钥用法。它只拾取列出的最后一个。

keytool -genkeypair -keystore keystore.jks -validity 3650 -alias test 
        -keysize 2048 -keyalg RSA -storetype JKS 
        -ext KeyUsage=digitalSignature -ext KeyUsage=keyEncipherment 
         -ext KeyUsage=keyCertSign

文档说您可以多次使用 -ext 参数。 我做错了什么?

【问题讨论】:

    标签: java x509certificate keytool


    【解决方案1】:

    -ext 可以多次给出,但不能用于同一类型的扩展。你想要的是

    keytool -genkeypair -keystore keystore.jks -validity 3650 -alias test 
        -keysize 2048 -keyalg RSA -storetype JKS 
        -ext KeyUsage=digitalSignature,keyEncipherment,keyCertSign
    

    多个 -ext 用于分别定义不同类型的扩展。比如这样:

    keytool -genkeypair -keystore keystore.jks -validity 3650 -alias test
        -keysize 2048 -keyalg RSA -storetype JKS
        -ext KeyUsage=digitalSignature,keyEncipherment,keyCertSign
        -ext ExtendedKeyUsage=serverAuth,clientAuth
        -ext BasicConstraints=ca:true,PathLen:3
        -ext SubjectAlternativeName=DNS:foo.bar.com,EMAIL:foo@bar.com
        -ext CRLDistributionPoints=URI:http://foo.bar.com/ca.crl
    

    这是一个人为的例子,但你明白了。

    【讨论】:

      猜你喜欢
      • 2012-04-22
      • 2014-03-01
      • 1970-01-01
      • 2013-04-10
      • 2012-12-31
      • 2014-07-04
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      相关资源
      最近更新 更多