Ошибка ключевого инструмента: java.security.KeyStoreException: DER не найден
Привет, я новичок в рукопожатии SSL. Я загрузил сертификат сервера из браузера и пытаюсь создать хранилище ключей с помощью keytool. Сертификат я храню как.cer с кодировкой der. но я получаю
keytool error: java.security.KeyStoreException: DER not found
я пробовал ниже команды
keytool -importkeystore -v -srckeystore certificate.cer -srcstoretype DER- destkeystore avg_clientcerts.keystore.jks -deststoretype JKS -storetype JKS
и изменение сертификата с расширением.der
keytool -importkeystore -v -srckeystore certificate.der -srcstoretype DER -destkeystore avg_clientcerts.keystore.jks -deststoretype JKS -storetype JKS
получать ошибку как
keytool error: java.security.KeyStoreException: DER not found
java.security.KeyStoreException: DER not found
at java.security.KeyStore.getInstance(KeyStore.java:851)
at sun.security.tools.keytool.Main.loadSourceKeyStore(Main.java:2020)
at sun.security.tools.keytool.Main.doCommands(Main.java:1074)
at sun.security.tools.keytool.Main.run(Main.java:366)
at sun.security.tools.keytool.Main.main(Main.java:359)
Caused by: java.security.NoSuchAlgorithmException: DER KeyStore not available
at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
at java.security.Security.getImpl(Security.java:695)
at java.security.KeyStore.getInstance(KeyStore.java:848)
... 4 more
Вот как я импортирую сертификат
1 ответ
Насколько я понимаю из вашего вопроса, вы пытаетесь импортировать публичный сертификат в ваше приложение, чтобы обеспечить безопасную связь между вашим приложением и сервером, к которому вы пытаетесь получить доступ, если сервер, к которому вы пытаетесь получить доступ, имеет сертификат, подписанный глобальной CA, тогда вам, вероятно, не нужно делать этого, но, похоже, это не так.
Тогда вам следует не создавать хранилище ключей, а импортировать открытый ключ в уже существующее хранилище ключей.
Короче ваша команда должна быть похожа на следующую.
keytool -importcert -file certificate.der -keystore avg_clientcerts.keystore.jks -alias "<<domain_name>>"
вот очень подробное объяснение этого процесса