У меня есть файл 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
Пожалуйста, помогите.