Я намагаюся підключити веб-API Java через HTTPS; однак виняток:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
Я дотримувався цих кроків, які я дізнався з онлайн-підручників з ключових інструментів та SSL:
Я скопіював URL-адресу HTTPS у браузер, завантажив сертифікати SSL та встановив їх у браузері за допомогою Internet Explorer.
Експортували сертифікати в шлях на моєму комп’ютері, сертифікати зберігалися як
.cer
Використовували опцію імпорту keytool. Команда нижче виконується без помилок.
keytool -import -alias downloadedCertAlias -keystore C:\path\to\my\keystore\cacerts.file -file C:\path\of\exportedCert.cer
Мені було запропоновано ввести пароль у командному рядку, який я ввів тоді, я отримав автентифікацію.
У
cmd
вікні були надруковані деякі дані сертифікатів та підписи, і мені було запропоновано запитання:Довіряєте цьому сертифікату?
Я відповів "так".
Відображається підказка cmd
Сертифікат додано до магазину ключів
Однак після цього повідомлення було показано ще одне виключення:
keytool error: java.io.FileNotFoundException: C:\Program files\...\cacerts <Access Denied>
Нарешті, коли я перевірив сховище ключів, сертифікат SSL не додано, і моя програма дає той самий виняток, який я отримував раніше при спробі підключення:
(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)
keytool
команду, яку ви виконали, і це результат? Деякі з очевидних питань тут - помилка-keystore
аргументації, і той факт, що keytool не вдалося знайти сховище ключів, щоб імпортувати ключ,