我正在創建一個Android應用程序,應用程序應該向服務器發送POST請求。不幸的是,服務器正在使用自簽名證書。所以我必須創建一個PKCS12密鑰庫,它將包含CA證書,並使我的應用程序使用該密鑰庫。Java keytool不會解析我的CA證書的擴展
要創建這樣一個密鑰,我目前使用下面的命令:
keytool -import -trustcacerts -alias my-alias -file cacert.pem
-keystore mykeystorefile -storetype PKCS12
不幸的是,密鑰庫不起作用。 (更多關於SSL握手失敗。)
當我檢查使用此命令的密鑰庫:
keytool -list -v -keystore mykeystorefile
我在這個名單的最後注意到一個奇怪的線。
#8: ObjectId: 2.5.29.18 Criticality=false
Unparseable IssuerAlternativeName extension due to
java.io.IOException: No data available in passed DER encoded value.
0000: 30 00 0.
*******************************************
*******************************************
Keytool無法解析擴展名,該擴展名是CA證書的一部分。
我對LetsEncrypt的CA證書也一樣,它工作得很好。
我很樂意爲任何關於如何解決這個問題的指針。
謝謝。
編輯:我目前使用的keytool是java-8-openjdk的一部分。
編輯2:因此,檢查CA證書後,發行人替代名稱擴展沒有任何價值。想知道是否有辦法如何跳過這些擴展?