2014-09-22 899 views
0

試圖將證書添加到密鑰庫,以便我可以在基於Java的應用程序中使用它。對我來說這是一個新概念。keytool keytool錯誤:java.lang.Exception:輸入的不是X.509證書

我有一個.p7b證書的網站,我把一個keytool命令放在一起。當我輸入它時,系統提示我指定一個密碼,然後提示出現以下錯誤

keytool error: java.lang.Exception: Input not an X.509 certificate 

任何人都可以提供見解嗎?

C:\Users\Desktop\>keytool -import -trustcacerts -file "service.site.com - SSL Cert.p7b" -keystore service.site.com.jks 
Enter keystore password: 
Re-enter new password: 
keytool error: java.lang.Exception: Input not an X.509 certificate 
+0

你從哪裏得到這個證書嗎? – EJP 2014-09-22 23:59:34

回答

0

你可以嘗試轉換的關鍵,CER(X509),然後嘗試匯入:

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer 

我也遇到過,即使我試圖導入的.pem文件類似的問題。該文件只包含一個以humain可讀形式存在的單一證書,並封裝在--BEGIN CERTIFICATE--和--END CERTIFICATE--中。在Java 7(補丁71)中,keytool無法解析這樣的文件,並拋出了相同的錯誤。一旦我刪除文件的文本部分:

Certificate: 
Data: 
    Version: 3 (0x2) 
    Serial Number: 11864724255945479761 (0xa4a7f7d949c31d11) 
Signature Algorithm: sha1WithRSAEncryption 
    Issuer: C=COM, ST=CA, O=Company, OU=ORG, CN=ORG/[email protected] 
    Validity 
     Not Before: Jan 5 15:30:35 2015 GMT 
     Not After : Jan 2 15:30:35 2025 GMT 

它爲我工作好吧。

也請看看下面的文章(https://myonlineusb.wordpress.com/2011/06/19/what-are-the-differences-between-pem-der-p7bpkcs7-pfxpkcs12-certificates/),因爲它說明了在各種格式之間的差異,並提供命令如何從一種格式轉換爲另一種

相關問題