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, и получить более быстрое решение проблемы.