2017-07-07 71 views
-2

是否有辦法讓keytool生成版本3證書? 我正在關注本教程Tutorial並最終獲得了版本1證書。但後來在我的應用程序中,我得到的異常是:Keytool生成版本3證書

Caused by: java.security.cert.CertPathValidatorException: Version 1 certificates can't be used as CA ones. 

我使用jdk8的keytool。

編輯: 命令

openssl x509 -signkey cakey.pem -req -days 3650 -in careq.pem -out caroot.cer -extensions v3_ca 

改變證書的版本。

+0

我試着用JDK 8和JDK8u131,得到了一個v3證書,它們都使用了與本教程中相同的命令。你確定它使用的是JDK 8嗎? –

+0

我的keytool路徑是C:\ java \ jdk1.8.0_66 \ bin \ keytool.exe,所以我想我是這樣做的。我可以嘗試下載完全相同的版本,並嘗試使用它。 –

+0

我用JDK8u131試過了,我仍然得到版本1證書。 –

回答

0

解決了,它不是在keytool中的問題,而是在openssl改變版本。 我需要指定-extfile v3.ext其中v3.ext文件根據thist post包含

authorityKeyIdentifier=keyid,issuer 
basicConstraints=CA:FALSE 
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment