Coldfusion cfhttp 返回对等端未经过身份验证

Coldfusion cfhttp returning peer not authenticated

我正在尝试使用 Coldfusion (Coldfusion 8) 通过 API 从 Flickr 获取用户的身份验证令牌。我已经写了一些从令牌中获取必要的东西,它作为查询字符串返回。现在,我正在使用以下代码尝试接收 JSON 响应,其中包含用户数据。并将替换为我的 Flickr 应用程序的密钥和机密。

<cfif structKeyExists(URL,"frob")>
    <cfset apiKey =  "<myapikey>" />
    <cfset apiSecret =  "<myapisecret>" />
    <cfset frob = #URL.frob# />
    <cfset apiSig = Hash(apiSecret & "api_key" & apiKey & "formatjson" & "frob" & frob & "methodflickr.auth.getTokenpermsread", "MD5") />
    <cfset flickrUrl = "https://flickr.com/services/rest/?method=flickr.auth.getToken&api_key=" & apiKey & "&perms=read" & "&format=json" & "&frob=" & frob & "&api_sig=" & apiSig />
    <cflocation url = "#flickrUrl#" addToken = "false" />
    <cfhttp
      method = "GET"
      url = "#flickrUrl#"
      resolveurl = "Yes"
      result = "result" />
    <cfdump var = "#result#" />
</cfif>

但是,cfdump 只是说对等端未经过身份验证。我可以按如下方式使用 cflocation 查看我应该接收的 JSON 数据,但我不知道如何访问它并使用 Coldfusion 解析它。

<cflocation url = "#flickrUrl#" addToken = "false" />

您是否在 Java 密钥库中安装了 flickr 证书?

Adobe ColdFusion 文档:

For secure connections to remote servers over SSL, all current versions of ColdFusion require the remote system's SSL certificate to exist in ColdFusion's certificate truststore.

https://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html

另外,在安装flickr证书之前,您需要下载它。 您可以为此使用 Chrome:

  1. 在 Chrome
  2. 中打开 flickr
  3. 单击地址栏中的锁定图标
  4. 单击连接
  5. 点击Certificate Information For Macs你可以直接获取证书到 你的桌面用鼠标,Windows 其详细信息选项卡和 "Copy to File"...

获得证书后,您需要将证书导入密钥库。 您需要找到 ColdFusion 安装使用的 JVM 并将其导入那里。 Java keytool 命令因版本而异,但即使是 CF 也很好地记录了它:

https://helpx.adobe.com/coldfusion/kb/import-certificates-certificate-stores-coldfusion.html

哦,当然,不要忘记在导入后重新启动您的 ColdFusion 服务器...