簡體   English   中英

使用 keytool 將 p7b 文件導入 Java Keystore

[英]Import p7b file to Java Keystore using keytool

我正在嘗試將第三方的 p7b 文件導入到 Java 信任存儲中。 看起來 p7b 包含一個根證書和一個公鑰。

我正在嘗試使用類似於

keytool -importcert -file certs.p7b -keystore dave.jks -storetype JCEKS -trustcacerts

當文件由第三方提供給我時,他們沒有告訴我公鑰的別名是什么。

我認為在不知道這些信息的情況下無法導入它是否正確?

這是一個很老的問題。 但我剛剛遇到了同樣的問題,所以我會發布我所做的。

我們有一個來自公共機構的 .p7b 文件,該文件持有必須在我們的系統中接受的證書鏈。 因為它有一個證書鏈,所以不能直接導入到 p12 文件中,所以,首先,我用openssl檢查了它:

 openssl pkcs7 -print_certs -inform der -in file.p7b

此命令提供別名和 base64 編碼證書的列表:

subject=LONG CERTIFICATE1 COMMONNAME WITH ESCAPE SEQUENCES
issuer=LONG CERTIFICATE1'S ISSUER COMMONNAME
-----BEGIN CERTIFICATE-----
long base64 string
-----END CERTIFICATE-----

subject=LONG CERTIFICATE2 COMMONNAME WITH ESCAPE SEQUENCES
issuer=LONG CERTIFICATE2'S ISSUER COMMONNAME
-----BEGIN CERTIFICATE-----
long base64 string
-----END CERTIFICATE-----

該列表很長,因為 .p7b 文件包含多個證書。

下一步是復制-----BEGIN CERTIFICATE----------END CERTIFICATE-----之間的所有片段,並將它們存儲在擴展名為.pem不同文件中:

certificate1.pem
certificate2.pem
...

然后將它們導入密鑰庫,使用長通用名作為別名:

keytool -alias "LONG CERTIFICATE1 COMMONNAME WITH ESCAPE SEQUENCES" -importcert -trustcacerts -file certificate1.pem -keystore trustcerts.p12 -storetype PKCS12
keytool -alias "LONG CERTIFICATE2 COMMONNAME WITH ESCAPE SEQUENCES" -importcert -trustcacerts -file certificate2.pem -keystore trustcerts.p12 -storetype PKCS12

在此之后,我們有了一個包含所有 .p7b 證書的 pkcs12 密鑰庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM