CPB*_*B07 19 coldfusion cfhttp
我有一个API在我的两个Web服务器之一上运行良好,但在另一个或本地机器上没有运行,而是当我在登录过程中发送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>
Run Code Online (Sandbox Code Playgroud)
我看了一眼,这似乎是一个常见的问题,但这个解决方案没有提供任何乐趣.
我假设有一些我可能会忽略的安全设置?如果有帮助的话,我可以点击页面并在本地计算机上的浏览器中登录.
有人有建议吗?
这是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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
Mig*_*l-F 24
如果您使用cfhttp
SSL(https)进行连接,则ColdFusion服务器肯定需要安装证书才能成功连接.以下是我在类似问题上给出的回答:
以下是为了将证书安装到ColdFusion的Java密钥库而需要执行的步骤.首先,确保您正在更新ColdFusion正在使用的正确cacerts文件.如果您在该服务器上安装了多个JRE.您可以在"系统信息"下验证管理员使用的JRE ColdFusion.查找Java Home行.
默认信任库是JRE的cacerts文件.此文件通常位于以下位置:
服务器配置:
cf_root /运行/ JRE/lib/security中/ cacerts中
JRun 4配置上的Multiserver/J2EE:
jrun_root/JRE/lib/security中/ cacerts中
Sun JDK安装:
jdk_root/JRE/lib/security中/ cacerts中
请参阅其他J2EE应用程序服务器和JVM的文档
要安装证书,您需要先获取证书的副本.这可以通过使用Internet Explorer完成.请注意,不同版本的Internet Explorer的行为略有不同,但应与这些步骤非常相似.例如,早期版本的IE可能会将证书保存在与我提及的不同的选项卡下.
https://xyz/infoLookup.php?wsdl
.将导出的证书文件复制到ColdFusion服务器(如果需要,可以从IE中删除证书)
cmd
在ColdFusion服务器上以管理员身份运行提示keytool是Java SDK的一部分,可以在以下位置找到:
服务器配置:
cf_root /运行/斌/密钥工具
JRun 4配置上的Multiserver/J2EE:
jrun_root/JRE /斌/密钥工具
Sun JDK安装:
jdk_root /斌/密钥工具
请参阅其他J2EE应用程序服务器和JVM的文档
要安装证书:
"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
注意:*your_cert_alias_name*我上面使用的可以是你想要的任何
注意:*C:\ wherever_you_saved_the_file\cert_file.cer*将这些值更改为用于服务器文件夹和证书文件名的任何值
验证证书:
"c:\program files\java\jre7\bin\keytool" -list -v -keystore cacerts -alias your_cert_alias_name -storepass changeit
注意:*your_cert_alias_name*在此处使用与上面用于安装证书的名称相同的名称
重新启动ColdFusion服务在执行此操作之前,它不会读取更新的cacerts文件.
如果需要,可以从服务器中删除导入的证书文件.
小智 5
我没有足够的分数来评论@Miguel-F 的答案,所以我需要根据我的经验和更多细节发布这个答案......
按照说明添加证书后,CFHTTP 仍然没有为我获取 https 站点。我发现这篇文章最终帮助我解决了这个问题。它描述了将 SSL 调试输出添加到 Coldfusion-out.log 文件中,该文件指定了您缺少的证书的确切下载 URL。我缺少的证书是“让我们加密”,它出现在日志文件中:
accessLocation: URIName: http://cert.int-x3.letsencrypt.org/
我点击该 URL 并使用 keytool 将下载的文件添加到密钥库。瞧!恢复了理智。
我又爱又恨 ColdFusion