簡體   English   中英

Java keytool不喜歡OpenSSL CSR

[英]Java keytool doesn't like OpenSSL CSR

我正在嘗試使用OpenSSL創建自簽名SSL證書,然后將該證書添加到JKS文件(Java密鑰庫)中,這樣我就可以讓基於Jetty的Web服務通過HTTPS向HTTP客戶端提供該自簽名證書。

我創建了OpenSSL自簽名證書:

openssl req -x509 -newkey rsa:4096 -keyout mykey-dev.pem -out mycsr-dev.pem -days 3650

然后,我創建了JKS:

keytool -alias myorg -keyalg RSA -keystore myapp.jks -keysize 2048

相信我現在需要將CSR( mycsr-dev.pem )導入到JKS中:

keytool -importcert -trustcacerts -file mycsr-dev.pem -alias myorg -keystore myapp.jks

這將產生以下錯誤:

keytool error: java.lang.Exception: Public keys in reply and keystore don't match

知道是什么問題嗎?

openssl創建PEM格式文件,而keytool將jks格式。

這是將證書從pem轉換為jks的方法:

貓cert_public_key.pem cert_private_key.pem | openssl pkcs12 -export -out cert.p12

keytool -importkeystore -srckeystore cert.p12 -srcstoretype pkcs12 -destkeystore cert.jks

發生問題是因為keytool genkey -alias myorg ...創建了一個密鑰對,而openssl req命令也創建了一個不相關的密鑰對。 因此,嘗試將openssl req命令中的cert導入myorg別名下的JKS密鑰庫中會導致兩個不同的公共密鑰之間發生沖突。 如果您打算將受信任的證書導入密鑰庫,則只需在所需別名下進行導入,則無需使用keytool genkey ...提前創建別名。

暫無
暫無

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

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