如何在使用Java密钥工具时将多个密钥用法添加到证书
问题描述:
我想在使用java密钥工具生成证书时将多个密钥用法添加到证书。它只提取最后列出的一个。如何在使用Java密钥工具时将多个密钥用法添加到证书
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参数。 我在做什么错?
答
-ext可以给出多次,但不适用于相同类型的扩展。你想要的是
keytool -genkeypair -keystore keystore.jks -validity 3650 -alias test
-keysize 2048 -keyalg RSA -storetype JKS
-ext KeyUsage=digitalSignature,keyEncipherment,keyCertSign
多个文本用于分别定义不同类型的扩展名。例如像这样:
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:[email protected]
-ext CRLDistributionPoints=URI:http://foo.bar.com/ca.crl
这是一个人为的例子,但你明白了。