У меня есть файл pkcs12. Мне нужно использовать это для подключения к веб-странице по протоколу https. Я наткнулся на некоторый код, где для подключения к защищенной веб-странице мне нужно установить следующие системные свойства:
System.setProperty("javax.net.ssl.trustStore", "myTrustStore");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
System.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
System.setProperty("javax.net.ssl.keyStore", "new_cert.p12");
System.setProperty("javax.net.ssl.keyStorePassword", "newpass");
У меня есть файл p12 (pkcs12). Все, что мне нужно, это файл склада доверенных сертификатов.
Я извлек сертификаты, используя:
openssl.exe pkcs12 -in c:/mykey.p12 -out c:/cert.txt -nokeys -clcerts
Теперь преобразовал файл сертификата PEM в der
openssl.exe x509 -in c:/cert.txt -outform DER -out c:/CAcert.der
Теперь добавление файла der в хранилище ключей
keytool -import -file C:/Cacert.der -keystore mytruststore
Теперь у меня есть склад доверенных сертификатов, но при его использовании я получаю следующую ошибку
Exception in thread "main" java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
Обновление:
После удаления определенных свойств и установки только свойств «trustStore», «trustStorePassword» и «trustStoreType» я получил следующее исключение
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Пожалуйста, помогите.