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">
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.
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.
- Busque la URL de SSL en Internet Explorer -
https://xyz/infoLookup.php?wsdl
. - Ver el certificado haciendo clic en el icono de candado y haciendo clic en ver certificado
- Luego haga clic en el botón Instalar certificado ... (nota: si no ve este botón, debe cerrar IE y ejecutarlo como administrador primero)
- Haga clic en Opciones de Internet de IE y haga clic en la pestaña Contenido
- Haga clic en el botón Certificados
- 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 ...
- Exportar utilizando el formato DER
Copie el archivo de certificado exportado a su servidor ColdFusion (puede eliminar el certificado de IE si lo desea)
- Ejecute el indicador de
cmd
como administrador en el servidor ColdFusion - 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:
- Cambie el directorio a la ubicación de su almacén de confianza (donde se encuentra el archivo cacerts)
- 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
- 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:
- 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.
Todo lo anterior no funcionará, si el servidor que está golpeando requiere TLS 1.2
. Esto requiere que actualice su JVM a 1.8
, que puede encontrar más información aquí:
http://blogs.coldfusion.com/post.cfm/how-to-change-upgrade-jdk-version-of-coldfusion-server
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