ColdFusion 11 Web服务不适用于https,适用于http



当我试图在浏览器中通过https访问webservice.cfc时,我得到了一个HTTP Error 500.0 - Internal Server Error。它在http上运行良好。.cfm页面没有问题。

在安装ColdFusion 9时,同样的Web服务也可以与https配合使用。

如何为ColdFusion 11修复此问题?它似乎介于IIS和ColdFusion之间。我应该尝试什么?

这项工作:

http://my.server.com/webservice.cfc?wsdl

这不是:

https://my.server.com/webservice.cfc?wsdl

返回错误:

HTTP Error 500.0 - Internal Server Error
The page cannot be displayed because an internal server error has occurred.

web服务器是IIS 8,ColdFusion 11

Detailed Error Information:
Module     IsapiModule
Notification       ExecuteRequestHandler
Handler    ISAPI-dll
Error Code     0x00000000
Requested URL      https://my.server.com:443/jakarta/isapi_redirect.dll
Physical Path      D:ColdFusion11configwsconfig1isapi_redirect.dll
Logon Method       Anonymous
Logon User     Anonymous

(2018-06-30)-使用解决方案更新

阅读后(https://tracker.adobe.com/#/view/CF-4203045)和(http://www.shavedmonkeys.com/index.cfm/coldfusion-blog/deploy-ssl-https-webservice-in-coldfusion/)

错误原因
CF 10、11和2016未预先配置对axis2 web服务的https支持。

解决方案
修改CF的axis2.xml文件以添加https transportreceiver行(默认位置为{drive letter}:ColdFusion11cfusionwwwrootWEB-INF)

更改此行:

<transportReceiver name="http" class="coldfusion.xml.rpc.CFAxisServletListener"/>

到此:

<transportReceiver name="http" class="coldfusion.xml.rpc.CFAxisServletListener">
<parameter name="port">80</parameter>
</transportReceiver>

<transportReceiver name="https" class="coldfusion.xml.rpc.CFAxisServletListener">
<parameter name="port">443</parameter>
</transportReceiver>

可能有两件事。。。

ColdFusion 9只有Axis 1 web服务。默认情况下,CF11使用轴2。您可以在CF Administrator的Application.cfc中将其设置为使用Axis 1,也可以在创建web服务对象时将其设置为用Axis 1而不是2。这可能会解决问题。

createObject( "webservice", "https://my.server.com/webservice.cfc?wsdl", {wsversion="1"} )

另一个可能是证书。有时您需要手动将证书添加到Java证书存储中,否则CF将无法通过SSL进行连接。我有一些关于这方面的文章,经过一点搜索,但它们都可以归结为:http://www.bryansgeekspeak.com/2014/12/coldfusion-11-java-keytool-import-cert.html

最新更新