Ошибка аутентификации ColdFusion SSL - PullRequest
3 голосов
/ 10 августа 2011

У меня есть простой запрос cfhttp (логин) на сервер SSL:

<cfhttp url="https://www2.[domain].com/api/user/login" method="POST" port="443" >
    <cfhttpparam type="formfield" name="username" value="[username]" >
    <cfhttpparam type="formfield" name="password" value="[password]" >
</cfhttp>

Запрос не выполняется до его начала, и сервер ColdFusion сообщает:

I / O Exception: одноранговый узел не аутентифицирован

Обе среды разработки работают потрясающе. Они получают сеанс входа в систему, а затем передают его процессу сбора, который успешно подключается к удаленной веб-службе для получения данных.

После того, как я потратил целый день, пытаясь получить правильный сертификат в магазинах ColdFusion, у меня появилась блестящая идея сравнить их с рабочими средами разработки. Я посмотрел на них (keytool -list), и они идентичны.

Теперь, когда очевидное освобождается, у меня остались двоякие вопросы:

  1. Есть ли еще какой-нибудь репозиторий сертификатов, который мне нужно проверить, или, альтернативно, есть ли место, где я могу получить ColdFusion, чтобы сообщить мне, в каком репозитории сертификатов ему нужно найти сертификат IN (если нет, то он может и был изменен) или, если это вообще возможно.
  2. Определите и исправьте, иначе это может быть причиной.

Ответы [ 2 ]

7 голосов
/ 10 августа 2011

Являются ли среды разработки и производства одинаковыми? Это все, например, ColdFusion 9 Standard или ColdFusion 8 Enterprise?

По моему опыту, эта ошибка обычно вызвана одной из двух причин:

  1. Администратору не удалось установить сертификат в репозиторий cacarts или он установил его в неправильный каталог.

  2. ColdFusion Enterprise и ColdFusion Developer Edition (как для ColdFusion 8, так и для ColdFusion 9, как мне кажется) имеют проблему со встроенной библиотекой BSafe CryptoJ, которая установлена, и с некоторыми типами сертификатов (я пока не смог определить шаблон), который вызывает эту ошибку. В этом случае есть некоторые обходные пути.

Во-первых, я хотел бы изучить возможность того, что вы импортируете в неправильный репозиторий сертификатов. Может быть трудно сказать, какой репозиторий используется. В вашем CF Admin в разделе «Сводка настроек» вы сможете найти местоположение используемой JRE. Это перечислено под "Домом Явы". Возьмите этот каталог и добавьте lib/security в его конец, а должен быть местоположением используемого файла cacaerts. Я говорю должен , потому что я видел по крайней мере одну странную ситуацию, где это не было.

2 голосов
/ 17 февраля 2016

У меня была такая же проблема, я все перепробовал и не могу это исправить.Странно, что все работало нормально, а потом вдруг перестало работать.Это может быть обновление Java на сервере, вызывающее проблему, или изменение сертификата с веб-сайта, к которому CFHTTP пытается получить доступ.

В любом случае, вот ссылка, которую я настроил для демонстрации этой проблемы:

http://www.viaromania.eu/https.cfm

Как видите, я пытаюсь получить доступ к HTTPSсервис с использованием тега CFHTTP.И это не работает.Я удалил сертификат из C:\ColdFusion9\runtime\jre\lib\security\cacerts, сгенерировал новый по URL-адресу сайта, импортировал обратно, установил «certman» в CFID / admministrator, проверил сертификат, он там ... и он указан на моей тестовой странице.

Если вы перейдете к нижней части моей тестовой страницы, вы увидите, что CFHTTP похож на https://www.google.com, и это прекрасно работает, даже если на сервере не установлен сертификат.

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

И ЭТО, КАК Я ИСПРАВЛЕНО

1.Обновлен ColdFusion 9.0.2 с этим - https://helpx.adobe.com/coldfusion/kb/cumulative-hotfix-1-coldfusion-902.html

2.Установленная Java JDK 1.7.0_79 отсюда http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

3.Изменен Java Home в ColdFusion Administrator / Настройки сервера → Java и JVM с «C: \ ColdFusion9 \ runtime \ lib \ jre» на «C: \ Program Files \ Java \ jdk1.7.0_79 \ jre»

Вот и все.Я не знаю, использует ли он какой-либо сертификат или нет.Они были установлены в "C: \ ColdFusion9 \ runtime \ lib \ jre \ lib \ security \ cacerts" и не перемещены оттуда или что-либо еще.

...