Coldfusion: CFHTTP с зашифрованной страницей SSL (https://) - получена ошибка

Я делаю cfhttp для подключения к зашифрованной странице. Кажется, работает нормально для некоторых сайтов.

I/O Exception: Name in certificate `pro.test.com' does not match host name `go.test.com'

Есть ли обходной путь для доверия этому сертификату, даже если имя хоста не совпадает?

3 ответа

Решение

Думаю, это вопрос Java, и обходной путь должен повлиять на JRE.

Не уверен, что это будет работать в вашем случае, но возможное решение состоит в том, чтобы импортировать этот сертификат в хранилище ключей JRE.

Общее описание можно найти на сайте Sun. Хотя процесс довольно прост.

Сначала вы должны перейти по необходимому URL-адресу HTTPS в браузере и экспортировать сертификат с помощью свойств SSL (не помню, как это делается в IE, но в Firefox что-то вроде Security > View cert > Details > Save as - все еще не уверен, потому что используя не английскую ликализацию), любой тип X.509 должен работать.

Затем вы должны импортировать его, используя keytool. Перейдите к текущей корзине CF JRE, выполните следующую команду (замените аргументы своими значениями) и перезапустите CF:

keytool -keystore <path to keystore> -import -file <path to certificate> -alias <alias>

Кстати, есть инструмент для пользовательского интерфейса, но я не использовал его, поэтому не могу сказать, работает ли он нормально.

Работающие сайты, вероятно, имеют действительный сертификат SSL от доверенного органа.

Если у вас есть контроль над pro.test.com, предпочтительным ответом будет получение действительного сертификата для установленного pro.test.com. Но если по какой-то причине это невозможно, я вижу два других варианта:

1) Сделайте попытку / поймайте, где вы пытаетесь подключиться через https, и вернитесь к http в случае ошибки SSL. Очевидно, что это устранит шифрование для неисправного соединения.

или же

2) Используйте решение Sergii для импорта ключа для этого сайта в хранилище ключей Java.

Если go.test.com является просто сервером разработки, в этом случае вы можете создать самозаверяющий сертификат и импортировать его в хранилище ключей Java. Таким образом, вы можете сэкономить на расходах, не платя CA, и получить более быстрое решение проблемы.

Другие вопросы по тегам