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