Подтвердить что ты не робот

Сбой соединения https от ColdFusion

У меня есть API, который отлично работает на одном из моих двух веб-серверов, но не на другом или на моем локальном компьютере, вместо этого у меня возникает сбой соединения, когда я отправляю запросы https как часть процесса входа.

Запросы очень просты и работают без проблем на одном из трех серверов, на которых он выполняется. Первый из них выглядит следующим образом:

<cfhttp url="https://accounts.ea.com/connect/auth?response_type=code&client_id=EASFC-web&state=59c5a8f1c4e7a991c1da0b54504c38e45f4d8d78&redirect_uri=http%3A%2F%2Fwww.easports.com%2Ffifa%2Ffootball-club%2Flogin_check&locale=uk&scope=basic.identity+basic.persona+signin+offline " method="GET" result="Stage2" redirect="false">
    <cfhttpparam type="header" name="Accept" value="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" />
    <cfhttpparam type="header" name="Accept-Encoding" value="gzip, deflate" />
    <cfhttpparam type="header" name="Accept-Language" value="en-US, en;q=0.5" />
    <cfhttpparam type="header" name="Connection" value="keep-alive" />
    <cfhttpparam type="header" name="Host" value="accounts.ea.com" />
    <cfhttpparam type="header" name="User-Agent" value="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36" />
</cfhttp>

Я посмотрел, и это, кажется, обычная проблема, но это исправление не принесло радости.

Я предполагаю, что есть некоторые настройки безопасности, которые я, возможно, не замечаю? Я могу ударить страницу и войти в браузер на моей локальной машине, если это поможет.

Есть ли у кого-нибудь советы?

Это то, что возвращается в CFDUMP:

Debugging Information 
ColdFusion Server Developer 9,0,0,251028
Template    /CraigTest/FUT/FIFACPB/logInSearchAccount17.cfm
Time Stamp  09-Dec-13 11:40 AM
Locale  English (UK)
User Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
Remote IP   127.0.0.1
Host Name   127.0.0.1
________________________________________
Execution Time
Total Time  Avg Time    Count   Template
608 ms  608 ms  1   C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\logInSearchAccount17.cfm
5 ms    5 ms    1   CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\Application.cfc | onRequestStart(/CraigTest/FUT/FIFACPB/logInSearchAccount17.cfm) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\Application.cfc
1 ms    1 ms    1   CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Player.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Player.cfc
0 ms    0 ms    1   CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Bid.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Bid.cfc
0 ms    0 ms    1   CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Club.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Club.cfc
0 ms    0 ms    1   CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Connect.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Connect.cfc
0 ms    0 ms    1   CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Search.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\Search.cfc
0 ms    0 ms    1   CFC[ C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\doLogin.cfc | init([complex value]) ] from C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\cfcs\doLogin.cfc
4 ms        STARTUP, PARSING, COMPILING, LOADING, & SHUTDOWN
617 ms      TOTAL EXECUTION TIME
red = over 250 ms average execution time 
________________________________________
Scope Variables
CGI Variables:
AUTH_PASSWORD=
AUTH_TYPE=
AUTH_USER=
CERT_COOKIE=
CERT_FLAGS=
CERT_ISSUER=
CERT_KEYSIZE=
CERT_SECRETKEYSIZE=
CERT_SERIALNUMBER=
CERT_SERVER_ISSUER=
CERT_SERVER_SUBJECT=
CERT_SUBJECT=
CF_TEMPLATE_PATH=C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\logInSearchAccount17.cfm
CONTENT_LENGTH=
CONTENT_TYPE=
CONTEXT_PATH=
GATEWAY_INTERFACE=
HTTPS=
HTTPS_KEYSIZE=
HTTPS_SECRETKEYSIZE=
HTTPS_SERVER_ISSUER=
HTTPS_SERVER_SUBJECT=
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_ENCODING=gzip, deflate
HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.5
HTTP_CONNECTION=keep-alive
HTTP_COOKIE=cf_debug_general=block; cf_debug_template_stack=block; CFID=15108; CFTOKEN=12249080; CFAUTHORIZATION_cfadmin=YWRtaW4NRTg5NzE2OTdCODczMUI0MDVBM0UxRTZCMjI2N0I1MDA5M0QzQkE4MQ1jZmFkbWlu; CFADMIN_LASTPAGE_ADMIN=%2FCFIDE%2Fadministrator%2Fdebugging%2Findex%2Ecfm
HTTP_HOST=127.0.0.1:8500
HTTP_REFERER=
HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
PATH_INFO=
PATH_TRANSLATED=C:\Services\web\wwwroot\CraigTest\FUT\FIFACPB\logInSearchAccount17.cfm
QUERY_STRING=reinit=1
REMOTE_ADDR=127.0.0.1
REMOTE_HOST=127.0.0.1
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/CraigTest/FUT/FIFACPB/logInSearchAccount17.cfm
SERVER_NAME=127.0.0.1
SERVER_PORT=8500
SERVER_PORT_SECURE=0
SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE=
WEB_SERVER_API=
Cookie Variables:
CFADMIN_LASTPAGE_ADMIN=/CFIDE/administrator/debugging/index.cfm
CFAUTHORIZATION_cfadmin=YWRtaW4NRTg5NzE2OTdCODczMUI0MDVBM0UxRTZCMjI2N0I1MDA5M0QzQkE4MQ1jZmFkbWlu
CFID=15108
CFTOKEN=12249080
cf_debug_general=block
cf_debug_template_stack=block
Session Variables:
biddingaccountloggedin=0
biddingaccountloginattempts=0
cfid=15108
cftoken=12249080
mainaccountloggedin=0
mainaccountloginattempts=0
pricingaccountloggedin=0
pricingaccountloginattempts=0
searchaccount10loggedin=0
searchaccount10loginattempts=0
searchaccount11loggedin=0
searchaccount11loginattempts=0
searchaccount12loggedin=0
searchaccount12loginattempts=0
searchaccount13loggedin=0
searchaccount13loginattempts=0
searchaccount14loggedin=0
searchaccount14loginattempts=0
searchaccount15loggedin=0
searchaccount15loginattempts=0
searchaccount16loggedin=0
searchaccount16loginattempts=0
searchaccount17gamertag=ZappyShrimp8
searchaccount17loggedin=0
searchaccount17loginattempts=0
searchaccount18loggedin=0
searchaccount18loginattempts=0
searchaccount19loggedin=0
searchaccount19loginattempts=0
searchaccount1loggedin=0
searchaccount1loginattempts=0
searchaccount20loggedin=0
searchaccount20loginattempts=0
searchaccount21loggedin=0
searchaccount21loginattempts=0
searchaccount22loggedin=0
searchaccount22loginattempts=0
searchaccount23loggedin=0
searchaccount23loginattempts=0
searchaccount24loggedin=0
searchaccount24loginattempts=0
searchaccount25loggedin=0
searchaccount25loginattempts=0
searchaccount26loggedin=0
searchaccount26loginattempts=0
searchaccount27loggedin=0
searchaccount27loginattempts=0
searchaccount28loggedin=0
searchaccount28loginattempts=0
searchaccount29loggedin=0
searchaccount29loginattempts=0
searchaccount2loggedin=0
searchaccount2loginattempts=0
searchaccount30loggedin=0
searchaccount30loginattempts=0
searchaccount3loggedin=0
searchaccount3loginattempts=0
searchaccount4loggedin=0
searchaccount4loginattempts=0
searchaccount5loggedin=0
searchaccount5loginattempts=0
searchaccount6loggedin=0
searchaccount6loginattempts=0
searchaccount8loggedin=0
searchaccount8loginattempts=0
sessionid=FIFAAUTOBUYER_15108_12249080
urltoken=CFID=15108&CFTOKEN=12249080
URL Parameters:
reinit=1
Debug Rendering Time: 21 ms

CFDUMP STAGE2:

struct
Charset     [empty string]
ErrorDetail     I/O Exception: peer not authenticated
Filecontent     Connection Failure
Header  [empty string]
Mimetype    Unable to determine MIME type of file.
Responseheader  
struct [empty]
Statuscode  Connection Failure. Status code unavailable.
Text    YES 
4b9b3361

Ответ 1

Если вы используете cfhttp для подключения через SSL (https), сервер ColdFusion определенно должен установить сертификат для успешного подключения. Вот предыдущий ответ, который я дал по аналогичной проблеме:

Ниже приведены шаги, которые необходимо выполнить для установки сертификата в хранилище ключей Java для ColdFusion. Во-первых, убедитесь, что вы обновляете правильный файл cacerts, который использует ColdFusion. Если на этом сервере установлено несколько JRE. Вы можете проверить, что JRE ColdFusion использует администратор в разделе "Информация о системе". Найдите строку Java Home.

Доверенным хранилищем по умолчанию является файл JRE cacerts. Этот файл обычно находится в следующих местах:

  • Конфигурация сервера:

    cf_root/среда/JRE/Library/безопасность/cacerts

  • Мультисервер /J 2EE в конфигурации JRun 4:

    jrun_root/JRE/Library/безопасность/cacerts

  • Установка Sun JDK:

    jdk_root/JRE/Library/безопасность/cacerts

  • Обратитесь к документации для других серверов приложений J2EE и JVM

Чтобы установить сертификат, вам нужно сначала получить копию сертификата. Это можно сделать с помощью Internet Explorer. Обратите внимание, что разные версии Internet Explorer будут вести себя несколько иначе, но должны быть очень похожими на эти шаги. Например, более ранние версии IE могут сохранять сертификат на другой вкладке, чем я упоминаю.

  • Перейдите к URL-адресу SSL в Internet Explorer - https://xyz/infoLookup.php?wsdl.
  • Просмотрите сертификат, щелкнув значок блокировки и нажав на значок просмотра
  • Затем нажмите кнопку "Установить сертификат..." (обратите внимание: если вы не видите эту кнопку, вы должны закрыть IE и запустить ее как администратор).
  • Нажмите "Свойства обозревателя IE" и перейдите на вкладку "Содержание".
  • Нажмите кнопку "Сертификаты"
  • Найдите сертификат сервера на вкладке "Средние сертификационные центры", выберите сертификат и нажмите кнопку "Экспорт..."
  • Экспорт с использованием формата DER

Скопируйте экспортированный файл сертификата на ваш сервер ColdFusion (вы можете удалить сертификат из IE, если хотите)

  • Запустите cmd запрос администратора на сервере ColdFusion
  • Сделайте резервную копию исходного файла cacerts в случае возникновения проблем

Keytool является частью Java SDK и может быть найден в следующих местах:

  • Конфигурация сервера:

    cf_root/выполнения/bin/Keytool

  • Мультисервер /J 2EE в конфигурации JRun 4:

    jrun_root/JRE/бен/Keytool

  • Установка Sun JDK:

    jdk_root/бен/Keytool

  • Обратитесь к документации для других серверов приложений J2EE и JVM

Чтобы установить сертификат:

  • Измените каталог в своем хранилище доверенных мест (где находится файл cacerts)
  • Введите эту команду (используйте текущий jvm и используйте текущий jvm keytool) "c:\program files\java\jre7\bin\keytool" -import -v -alias your_cert_alias_name -file C:\wherever_you_saved_the_file\cert_file.cer -keystore cacerts -storepass changeit
  • Введите yes в приглашении "Доверять этому сертификату?"

Примечание: * your_cert_alias_name * Я использовал выше, может быть любым, что вы хотите Примечание: * C:\wherever_you_saved_the_file\cert_file.cer * измените эти значения на все, что вы используете для папки сервера и имени файла сертификата

Чтобы проверить сертификат:

  • Введите эту команду (используйте текущий jvm и используйте текущий jvm keytool) "c:\program files\java\jre7\bin\keytool" -list -v -keystore cacerts -alias your_cert_alias_name -storepass changeit

Примечание: * your_cert_alias_name * используйте то же имя здесь, что вы использовали выше, чтобы установить сертификат

Перезапустить службу ColdFusion. Он не будет читать обновленный файл cacerts, пока вы это сделаете.

Вы можете удалить импортированный файл сертификата с сервера, если хотите.

Ответ 2

Здесь есть несколько сценариев, которые могли бы представить это сообщение.

Также есть несколько подробных сообщений и тем сообщений, которые могут помочь вам в расследовании вашей проблемы.

1) Проблема разрешения DNS - убедитесь, что вы можете нажать URL-адрес конечной точки, или эта ошибка будет создана.

2) Убедитесь, что пользовательский агент задан в запросе cfhttp, серверы могут легко обнаружить нестандартные пользовательские агенты и отфильтровать их.

enter code here

3) Отключите сжатие в запросе. В случаях, когда вы нажимаете на некоторые серверы, это работает. Это может привести к некоторым конфигурациям IIS. Есть множество сайтов с этим примером в поиске, и это сработало для меня.

<cfhttp url="https://yourUrlHere.com" method="get">
    <cfhttpparam type="Header" name="Accept-Encoding" value="*"> 
    <cfhttpparam type="Header" name="TE" value="deflate;q=0">
</cfhttp>

Другой заголовок, который вы можете попробовать отправить, в зависимости от http-сервера на другом конце:

<cfhttpparam type="header" name="Accept-Encoding" Value="no-compression"> 

Источник

4) Если проблема вызвана сертификатом SSL, вы можете вручную добавить сертификаты на свой сервер. Я предпочитаю не смотреть в этом направлении, если это возможно, но вы можете его искать.

5) Другой сценарий подключения к URL-адресу https состоит в том, что может потребоваться отключить поставщика сертификатов по умолчанию (их много в Java, а по умолчанию не подходит то, что необходимо). Это не влияет на безопасность, использует только другую эквивалентную библиотеку.

        

Источник для примера 5

6) И последнее, но не менее важное: вы можете стать жертвой переписывания правил. Я этого не испытал, но это выглядит интересно.

Проблемы с подключением CFHTTP при использовании mod_rewrite

Ответ 3

Для тех, кто, возможно, приземлился здесь, если у них возникли проблемы с использованием службы проверки подлинности cfhttp и Google recaptcha (как и я), сообщение на этой странице относительно добавления сертификата безопасности Google в файл JRE cacerts имеет важное значение.

Что также важно (и нелегко найти) заключается в том, чтобы добавить

<cfhttpparam type="CGI" encoded="false" name="Content_Type" value="application/json; charset=utf-8">

вам запрос cfhttp. Это решит ошибку "Невозможно определить тип содержимого. Недопустимый MIME". который также выглядит как ошибка соединения. (добавление ответа Jas выше)

Благодаря 12Robots на форуме сообщества Adobe ColdFusion для этого!

Ответ 5

У меня был сервер с Coldfusion 10 (с использованием версии Java: 1.7.0_15) и Windows Server 2008. Я добавил сертификаты для своего URL-адреса API. Но я получал ошибку

Ошибка подключения: код состояния недоступен.

Затем я добавил следующую конфигурацию в конфигурацию JVM Coldfusion в администраторе Coldfusion и начал работать.

-Dhttps.protocols=TLSv1.1,TLSv1.2

Ответ 6

У меня недостаточно очков для комментариев по поводу ответа @Miguel-F, поэтому мне нужно опубликовать этот ответ с моим опытом и подробностями...

После следующих инструкций по добавлению сертификата CFHTTP по-прежнему не получает для меня https-сайт. Я нашел этот пост, который, наконец, помог мне решить проблему. В нем описывается добавление вывода отладки SSL в файл coldfusion-out.log, в котором указывается точный URL загрузки для отсутствующего сертификата. Сертификат, который я отсутствовал, был для "Let encrypt", который появился в файле журнала:

accessLocation: URIName: http://cert.int-x3.letsencrypt.org/

Я ударил этот URL-адрес и использовал keytool, чтобы добавить загруженный файл в хранилище ключей. Вуаля! Благополучие восстановлено.

Я люблю и ненавижу ColdFusion