我正在尝试使用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参数。 我做错了什么?
答案 0 :(得分:5)
-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
这是一个人为的例子,但你明白了。