Как обойти ошибки сертификата в среде разработчиков?
У нас есть сертификаты от VeriSign для наших доменов. Однако я пытаюсь провести некоторое тестирование в нашей среде разработки и продолжаю получать ошибки сертификата (поскольку IP-адреса разработки не совпадают с IP-адресами производства, с которыми мы зарегистрировали сертификат), и это вызывает у меня головную боль. Кажется, я не могу точно определить, являются ли проблемы, с которыми я сталкиваюсь, частью внесенных изменений, или эти проблемы связаны с ошибками сертификата.
Я попытался добавить ключ реестра для IE, чтобы не заботиться об этих ошибках, но это, похоже, не помогает.
Можно ли как-нибудь обойти эту проблему, не покупая больше сертификатов для моей среды разработки?
1 ответ
Есть два варианта. Первый требует меньше изменений в вашем коде и включает создание новых сертификатов для ваших серверов разработки вместо повторного использования производственных. Вам не нужно их покупать, они могут быть подписаны самостоятельно. Я рекомендую вам создать новый TrustStore только с сертификатами разработки и указать хранилище доверенных сертификатов при запуске вашей программы. java -Djavax.net.ssl.trustStore=truststore -Djavax.net.ssl.trustStorePassword=123456 MyApp
Вы также можете добавить сертификаты сервера dev в файл cacerts JDK, который обычно находится в Windows по адресу C:\Program Files\Java\jre6\lib\security\cacerts. Эта опция менее безопасна, но вам не нужно менять способ запуска клиента.
Второй вариант предполагает изменение вашего кода разработки, чтобы игнорировать эти ошибки. Обычно это включает создание собственного TrustManger и передачу его в SSLSocketFactory. Вот хороший пример: http://exampledepot.com/egs/javax.net.ssl/TrustAll.html Мне не нравится эта опция, потому что вы можете зафиксировать в своем проекте небезопасный код, который не проверяет сертификаты сервера.