Search code examples
web-servicescoldfusionwsdliis-8coldfusion-11

ColdFusion 11 webservice not working with https, works with http


I'm getting a HTTP Error 500.0 - Internal Server Error when I try to access in the browser a webservice .cfc over https. It works fine over http. No problem for .cfm pages.

The same webservice works fine with https on a ColdFusion 9 install.

How can I get this fixed for ColdFusion 11? It seems to be something between IIS and ColdFusion. What should I try?

This works:

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

This does not:

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

returns error:

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

The web server is 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:\ColdFusion11\config\wsconfig\1\isapi_redirect.dll
Logon Method       Anonymous
Logon User     Anonymous

(2018-06-30) - Update with solution

After reading (https://tracker.adobe.com/#/view/CF-4203045) and (http://www.shavedmonkeys.com/index.cfm/coldfusion-blog/deploy-ssl-https-webservice-in-coldfusion/)

Reason for error:
CF 10, 11 and 2016 do not pre-configure support of https for axis2 web services.

Solution:
Modify CF's axis2.xml file to add an https transportreceiver line (the default location for this is {drive letter}:\ColdFusion11\cfusion\wwwroot\WEB-INF)

change this line:

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

to this:

<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>

Solution

  • Could be a couple things...

    ColdFusion 9 only had Axis 1 web services. CF11 uses Axis 2 by default. You can either set it to use Axis 1 in the CF Administrator, in your Application.cfc, or when you create the web service object you can set it to use Axis 1 instead of 2. This might solve the problem.

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

    The other thing it might be, is the certificate. Sometimes you need to manually add a certificate to the Java certificate store otherwise CF will be unable to connect over SSL. There are my articles about this with a little bit of searching, but they all boil down to this, basically: http://www.bryansgeekspeak.com/2014/12/coldfusion-11-java-keytool-import-cert.html