2017-10-04 128 views
1

我想在使用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參數。 我在做什麼錯?

回答

2

-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 

這是一個人爲的例子,但你明白了。