Краткое описание: как установить новый корневой сертификат на Java с помощью Java-кода?Как импортировать сертификат Java CA без использования утилиты командной строки keytool?
У нас есть настольное приложение, которое обращается к различным веб-службам. Недавно один из них переключил свой SSL-сертификат на один, подписанный Trustwave. Хотя сертификаты Trustwave SSL принимаются регулярные интернет-браузеры, Java, кажется, не приходят с Предпосылкой корневых сертификатов, и мы потеряли доступ к данному веб-службы со следующим сообщением об ошибке:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Мы получили временный отказать, убедив провайдера вернуться к Verisign, но когда они вернутся, мы должны быть готовы. Поэтому мне нужно, чтобы наше настольное программное обеспечение автоматически устанавливало корневой сертификат Trustwave по мере необходимости. Наши клиенты не настолько хорошо разбираются в технологии, чтобы использовать команду keytool, и я предпочел бы ее не создавать, поскольку это ставит меня как хрупкое решение (отдельные реализации для Mac и ПК, борьба с ограничениями выполнения Vista, проблемы с поиском правильной JRE для установки в , и т.д).
Я полагаю, что keytool использует Java внутри себя. Какую команду я мог бы использовать в Java для репликации функциональных возможностей keytool и программным обеспечением установки корневого сертификата?
Это может сработать для нас. Ссылка предлагает способ полностью отключить проверку, которая не то, что мы хотим точно, но, возможно, я мог бы подстроить нормальный TrustManager, чтобы создать тот, который пытается использовать все обычные корневые сертификаты плюс один. Спасибо, это выглядит многообещающе. –