Как запустить HTTP-сервер Java с самозаверяющим сертификатом и доверять его браузерам?
У меня есть требование, когда мне нужно запустить HTTP-сервер на основе Java по SSL и подключиться к нему из браузеров. Я также должен убедиться, что браузеры не показывают исключение безопасности для самозаверяющего сертификата.
Я сделал следующее -
- Сгенерировал хранилище ключей JKS, используя Java keytool -keygen.
- Импортировал это хранилище ключей как файл PKCS12 p12, используя keytool -importkeystore.
Загрузил файл p12 в объект X509Certificate2 и добавил его в Root и CertificateAuthority
X509Store store5 = new X509Store(StoreName.Root, StoreLocation.LocalMachine); store5.Open(OpenFlags.ReadWrite); store5.Add(cert); store5.Close(); X509Store store2 = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine); store2.Open(OpenFlags.ReadWrite); store2.Add(cert); store2.Close();
Экспортировал файл сертификата из хранилища ключей JKS.
- Добавил этот файл.cer к ядрам Java.
Теперь, когда я запускаю HTTP-сервер, он выбирает сертификат и обслуживает HTTPS-запросы, но браузер по-прежнему показывает сайт как ненадежный.
2 ответа
Конечно, это невозможно. Целью сообщения об ошибке браузера является предупреждение пользователя о том, что веб-сайт использует небезопасный сертификат.
После отправки запроса на сертификат в ЦС. Вы должны поставить сертификат CA вместе с "комплектом", состоящим из двух или более сертификатов (связанных), и установить его в jks (хранилище ключей java), и браузер примет ваш сайт как безопасный.
Есть множество ресурсов на эту тему, доступных через ваш любимый поисковик...
Nitin, здесь можно установить сертификат, сгенерированный в браузере. Вы не указали, какой браузер, я беру IE в качестве примера. Вы можете импортировать сертификаты.
Пожалуйста, обратите внимание: я импортирую их в доверенное хранилище, потому что я знаю, что создал их и доверяю издателю сертификата. Никогда не делайте этого для ненадежных сторонних сайтов. Кроме того, вы можете добавить сайт в качестве доверенного сайта с меньшей безопасностью, если вы доверяете ему