coldfusion cfhttp

Fallo en la conexión de ColdFusion https



cfhttp (6)

Hay varios escenarios aquí que podrían presentar este mensaje.

También hay una serie de publicaciones y temas de blog detallados que podrían ayudarle a investigar su problema.

1) Problema de resolución de DNS: asegúrese de que puede llegar a la URL del punto final, o se producirá este error.

2) Asegúrese de establecer un agente de usuario en la solicitud cfhttp, los servidores pueden detectar fácilmente agentes de usuario no estándar y filtrarlos.

enter code here

3) Desactivar la compresión en la solicitud. En los casos en los que estás golpeando algunos servidores, esto funciona. Esto puede llegar a algunas configuraciones de IIS. Hay numerosos sitios con este ejemplo en la búsqueda y ha funcionado para mí.

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

Otro encabezado que puede intentar enviar dependiendo del servidor http en el otro extremo es:

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

Source

4) Si el problema es causado por un certificado SSL, puede agregar manualmente los certificados a su servidor. Prefiero no mirar en esta dirección si es posible, pero puedes buscarlo.

5) Otro escenario de conexión a una URL https es que puede ser necesario deshabilitar el proveedor de certificados predeterminado (hay muchos en Java y es posible que el predeterminado no se ajuste a lo que se necesita). Esto no afecta a la seguridad, solo usa una biblioteca diferente, equivalente.

Fuente para el Ejemplo 5

6) Por último, pero no menos importante, es posible que estés cayendo presa para volver a escribir reglas. No he experimentado esto, pero parece interesante.

Problemas de "fallas de conexión" de CFHTTP al utilizar mod_rewrite

Tengo una API que funciona bien en uno de mis dos servidores web, pero no en el otro o en mi máquina local, en su lugar, se produce un error de conexión cuando envío solicitudes https como parte del proceso de inicio de sesión.

Las solicitudes son muy simples y funcionan sin problemas en uno de los tres servidores en los que se está ejecutando. El primero es el siguiente:

<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>

He echado un vistazo y este parece ser un problema común, pero esta solución no me dio alegría.

¿Supongo que hay una configuración de seguridad que quizás esté pasando por alto? Soy capaz de acceder a la página e iniciar sesión dentro del navegador en mi máquina local si eso ayuda.

¿Alguien tiene algún consejo?

Esto es lo que se devuelve en un 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


No tengo suficientes puntos para comentar sobre la respuesta de @Miguel-F, por lo que debo publicar esta respuesta con mi experiencia y más detalles ...

Después de seguir las instrucciones para agregar el certificado, CFHTTP aún no estaba recibiendo el sitio https para mí. Encontré este post que finalmente me ayudó a resolver el problema. Describe cómo agregar la salida de depuración SSL al archivo coldfusion-out.log, que especifica la URL de descarga exacta para el certificado que falta. El certificado que faltaba era para "Let''s Encrypt" que apareció en el archivo de registro como:

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

Golpeé esa URL y usé la herramienta para agregar el archivo descargado al almacén de claves. Voila! Sanidad restaurada.

Me encanta y odio ColdFusion


Para aquellos que pueden haber llegado aquí si tuvieran problemas para usar cfhttp y el servicio de verificación segura recaptcha de Google (como lo hice yo), la publicación en esta página sobre la adición del certificado de seguridad de Google al archivo de datos de JRE es esencial.

Lo que también es esencial (y no es fácil de encontrar) es agregar

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

a su solicitud cfhttp. Esto solucionará el error "No se puede determinar el tipo de contenido. MIME no válido". que también parece un error de conexión. (añadiendo a la respuesta de Jas arriba)

¡Gracias a 12Robots en el foro de Comunidades ColdFusion de Adobe por eso!


Si está utilizando cfhttp para conectarse a través de SSL (https), entonces el servidor ColdFusion definitivamente necesita el certificado instalado para conectarse con éxito. Aquí hay una respuesta anterior que di sobre un tema similar:

Estos son los pasos que debe realizar para instalar el certificado en el almacén de claves de Java para ColdFusion. Primero, asegúrese de que está actualizando el archivo de cacerts correcto que está usando ColdFusion. En caso de que tenga más de un JRE instalado en ese servidor. Puede verificar que JRE ColdFusion está utilizando el administrador en "Información del sistema". Busque la línea Java Home.

El almacén de confianza predeterminado es el archivo de cacerts de JRE. Este archivo se encuentra normalmente en los siguientes lugares:

  • Configuración del servidor:

    cf_root / runtime / jre / lib / security / cacerts

  • Multiservidor / J2EE en la configuración JRun 4:

    jrun_root / jre / lib / security / cacerts

  • Instalación de Sun JDK:

    jdk_root / jre / lib / security / cacerts

  • Consulte la documentación de otros servidores de aplicaciones J2EE y JVM.

Para instalar el certificado, primero debe obtener una copia del certificado. Esto se puede hacer utilizando Internet Explorer. Tenga en cuenta que las diferentes versiones de Internet Explorer se comportarán de manera ligeramente diferente, pero deberían ser muy similares a estos pasos. Por ejemplo, las versiones anteriores de IE pueden guardar el certificado en una pestaña diferente a la que menciono.

  1. Busque la URL de SSL en Internet Explorer - https://xyz/infoLookup.php?wsdl .
  2. Ver el certificado haciendo clic en el icono de candado y haciendo clic en ver certificado
  3. Luego haga clic en el botón Instalar certificado ... (nota: si no ve este botón, debe cerrar IE y ejecutarlo como administrador primero)
  4. Haga clic en Opciones de Internet de IE y haga clic en la pestaña Contenido
  5. Haga clic en el botón Certificados
  6. Busque el certificado del servidor en la pestaña Entidades de certificación intermedias, seleccione el certificado y haga clic en el botón Exportar ...
  7. Exportar utilizando el formato DER

Copie el archivo de certificado exportado a su servidor ColdFusion (puede eliminar el certificado de IE si lo desea)

  1. Ejecute el indicador de cmd como administrador en el servidor ColdFusion
  2. Haga una copia de seguridad del archivo cacerts original en caso de que tenga problemas

El keytool es parte del SDK de Java y se puede encontrar en los siguientes lugares:

  • Configuración del servidor:

    cf_root / runtime / bin / keytool

  • Multiservidor / J2EE en la configuración JRun 4:

    jrun_root / jre / bin / keytool

  • Instalación de Sun JDK:

    jdk_root / bin / keytool

  • Consulte la documentación de otros servidores de aplicaciones J2EE y JVM.

Para instalar el cert:

  1. Cambie el directorio a la ubicación de su almacén de confianza (donde se encuentra el archivo cacerts)
  2. Escriba este comando (use jvm actual y use keytool de jvm actual) "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
  3. Escriba sí en el mensaje "¿Confiar en este certificado?"

Nota: * your_cert_alias_name * que he usado anteriormente puede ser lo que quieras
Nota: * C: / where_you_saved_the_file / cert_file.cer * cambie estos valores a lo que use para la carpeta del servidor y el nombre del archivo del certificado

Para verificar el certificado:

  1. Escriba este comando (use jvm actual y use keytool de jvm actual) "c:/program files/java/jre7/bin/keytool" -list -v -keystore cacerts -alias your_cert_alias_name -storepass changeit

Nota: * your_cert_alias_name * use el mismo nombre que usó anteriormente para instalar el certificado

Reinicie el servicio ColdFusion. No leerá el archivo de cacerts actualizado hasta que haga esto.

Puede eliminar el archivo de certificado importado del servidor si lo desea.



Tuve un servidor con Coldfusion 10 (con la versión Java: 1.7.0_15) y Windows Server 2008 . He añadido certificados para mi URL url. Pero me estaba equivocando

Error de conexión: Código de estado no disponible.

Luego agregué la siguiente configuración a Coldfusion JVM config en el Administrador de Coldfusion y comenzó a funcionar.

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