J'ai une API qui fonctionne correctement sur l'un de mes deux serveurs Web, mais pas sur l'autre ou sur mon ordinateur local. J'obtiens plutôt d'un échec de connexion lorsque j'envoie des demandes https dans le cadre du processus de connexion.
Les requêtes sont très simples et fonctionnent sans problème sur l’un des trois serveurs sur lesquels il est exécuté. Le premier est le suivant:
<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>
J'ai jeté un coup d'oeil et cela semble être un problème commun mais ce correctif fourni aucune joie.
Je suppose qu'il y a un paramètre de sécurité que je peux peut-être oublier? Je peux accéder à la page et me connecter au navigateur sur ma machine locale si cela peut aider.
Est-ce que quelqu'un a un conseil?
C'est ce qui est retourné dans un PCDUP:
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
PCDUMP 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
Si vous utilisez cfhttp
pour vous connecter via SSL (https), le serveur ColdFusion a définitivement besoin du certificat installé pour se connecter correctement. Voici une réponse précédente que j'ai donnée sur un problème similaire:
Voici les étapes à suivre pour installer le certificat dans le magasin de clés Java pour ColdFusion. Tout d’abord, assurez-vous de mettre à jour le fichier cacerts correct utilisé par ColdFusion. Si plusieurs JRE sont installés sur ce serveur. Vous pouvez vérifier que JRE ColdFusion est en cours d'utilisation auprès de l'administrateur sous "Informations système". Recherchez la ligne d’accueil Java.
Le fichier de clés certifiées par défaut est le fichier cacerts du JRE. Ce fichier se trouve généralement aux endroits suivants:
Configuration du serveur:
racine_cf/runtime/jre/lib/security/cacerts
Configuration multiserveur/J2EE sur JRun 4:
racine_jrun/jre/lib/security/cacerts
Installation du JDK Sun:
racine_jdk/jre/lib/security/cacerts
Consultez la documentation d'autres serveurs d'applications J2EE et JVM.
Pour installer le certificat, vous devez d'abord en obtenir une copie. Cela peut être fait en utilisant Internet Explorer. Notez que les différentes versions d'Internet Explorer se comporteront légèrement différemment mais devraient être très similaires à ces étapes. Par exemple, les versions antérieures de IE pourraient enregistrer le certificat sous un onglet différent de celui que je mentionne.
https://xyz/infoLookup.php?wsdl
.Copiez le fichier de certificat exporté sur votre serveur ColdFusion (vous pouvez supprimer le certificat de IE si vous le souhaitez).
cmd
en tant qu'administrateur sur le serveur ColdFusion.L'outil de clé fait partie du SDK Java et se trouve aux endroits suivants:
Configuration du serveur:
racine_cf/runtime/bin/keytool
Configuration multiserveur/J2EE sur JRun 4:
racine_jrun/jre/bin/keytool
Installation du JDK Sun:
racine_jdk/bin/keytool
Consultez la documentation d'autres serveurs d'applications J2EE et JVM.
Pour installer le cert:
"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
Note: * your_cert_alias_name * que j'ai utilisé ci-dessus peut être ce que vous voulez
Remarque: * C:\partout où vous sauvegardez_le_fichier\cert_file.cer * remplacez ces valeurs par tout ce que vous utilisez pour le dossier du serveur et le nom du fichier de certificat.
Pour vérifier le cert:
"c:\program files\Java\jre7\bin\keytool" -list -v -keystore cacerts -alias your_cert_alias_name -storepass changeit
Remarque: * your_cert_alias_name * utilise ici le même nom que celui que vous avez utilisé ci-dessus pour installer le certificat.
Redémarrez le service ColdFusion Il ne lira pas le fichier cacerts mis à jour avant cette opération.
Vous pouvez supprimer le fichier de certificat importé du serveur si vous le souhaitez.
J'avais un serveur avec Coldfusion 10 (avec Java Version: 1.7.0_15) et Windows Server 2008 . J'avais ajouté des certificats pour mon URL d'API. Mais j'ai eu une erreur
Échec de la connexion: code d'état non disponible.
Ensuite, j'ai ajouté la configuration suivante à la configuration Coldfusion JVM dans Coldfusion Administrator et elle a commencé à fonctionner.
-Dhttps.protocols=TLSv1.1,TLSv1.2
Un certain nombre de scénarios peuvent présenter ce message.
Il existe également un certain nombre de messages de blog et de discussions détaillés qui pourraient vous aider à étudier votre problème.
1) Problème de résolution DNS - assurez-vous que vous pouvez atteindre l’URL du noeud final, sinon cette erreur sera générée.
2) Assurez-vous de définir un agent d'utilisateur dans la requête cfhttp, les serveurs peuvent facilement détecter des agents d'utilisateur non standard et les filtrer.
enter code here
3) Désactivez la compression dans la demande. Dans les cas où vous frappez certains serveurs, cela fonctionne. Cela peut arriver avec certaines configurations d'IIS. Il existe de nombreux sites avec cet exemple sur la recherche et cela a fonctionné pour moi.
<cfhttp url="https://yourUrlHere.com" method="get">
<cfhttpparam type="Header" name="Accept-Encoding" value="*">
<cfhttpparam type="Header" name="TE" value="deflate;q=0">
</cfhttp>
Un autre en-tête que vous pouvez essayer d’envoyer en fonction du serveur http de l’autre extrémité est:
<cfhttpparam type="header" name="Accept-Encoding" Value="no-compression">
4) Si le problème est causé par un certificat SSL, vous pouvez ajouter manuellement les certificats à votre serveur. Je préfère ne pas regarder dans cette direction si possible mais vous pouvez le chercher.
5) Un autre scénario de connexion à une URL https est la nécessité de désactiver le fournisseur de certificat par défaut (il en existe beaucoup en Java et le fournisseur par défaut peut ne pas correspondre à ce qui est nécessaire). Cela n’affecte pas la sécurité, utilise uniquement une bibliothèque différente et équivalente.
6) Dernier point, mais non le moindre, vous êtes peut-être en train de devenir une proie pour réécrire les règles. Je n'ai pas vécu cela, mais ça a l'air intéressant.
Problèmes "Echecs de connexion" CFHTTP lors de l'utilisation de mod_rewrite
Je n'ai pas assez de points pour commenter la réponse de @ Miguel-F, je dois donc poster cette réponse avec mon expérience et des détails supplémentaires ...
Après avoir suivi les instructions pour ajouter le certificat, CFHTTP n’avait toujours pas le site https pour moi. J'ai trouvé ce post qui m'a finalement aidé à résoudre le problème. Il décrit l'ajout d'une sortie de débogage SSL dans le fichier coldfusion-out.log, qui spécifie l'adresse URL de téléchargement exacte du certificat que vous manquez. Le certificat qui me manquait était pour "Let's Encrypt", qui apparaît dans le fichier journal sous la forme:
accessLocation: URIName: http://cert.int-x3.letsencrypt.org/
J'ai frappé cette URL et utilisé l'outil de clé pour ajouter le fichier téléchargé au magasin de clés. Voila! La santé mentale restaurée.
J'aime et déteste ColdFusion
Pour ceux qui ont pu atterrir ici s'ils éprouvaient des difficultés à utiliser cfhttp et le service de vérification sécurisée recaptcha de Google (comme je l'ai fait), il est essentiel de publier sur cette page l'ajout du certificat de sécurité de Google au fichier cacerts de JRE.
Ce qui est également essentiel (et difficile à trouver) est d’ajouter
<cfhttpparam type="CGI" encoded="false" name="Content_Type" value="application/json; charset=utf-8">
à votre demande cfhttp. Cela résoudra l'erreur "Impossible de déterminer le type de contenu. MIME non valide". qui ressemble aussi à une erreur de connexion. (ajoutant à la réponse de Jas ci-dessus)
Merci à 12Robots pour le forum Adobe ColdFusion Communities!
Tout ce qui précède ne fonctionnera pas si le serveur sur lequel vous appuyez nécessite TLS 1.2
. Ceci nécessite de mettre à jour votre JVM vers 1.8
, sur lequel vous trouverez plus d’informations ici:
http://blogs.coldfusion.com/post.cfm/how-to-change-upgrade-jdk-version-of-coldfusion-server