Wer versucht in ColdFusion mit CFHTTP eine Webseite aufzurufen welche ein nicht vertrauenswürdiges SSL Zertifikat hat erhält als Fehlermeldung Connection Failure.
cfdump von cfhttp:
Charset: [empty string]
ErrorDetail: I/O Exception: peer not authenticated
Filecontent: Connection Failure
Header: [undefined struct element]
Mimetype: Unable to determine MIME type of file.
Responseheader: struct [empty]
Statuscode: Connection Failure. Status code unavailable.
Text: YES
Die Lösung ist recht einfach, das Zertifikat muss nur zu den Vertrauenswürdigen Zertifikaten hinzugefügt werden. Hier ein Beispiel mit einem ColdFusion 7 Server.
Das Zertifikat aufrufen und abspeichern
Die Webseite im Internet Explorer aufrufen und in der Address Bar das Zertifikat anzeigen lassen.
Im Tab Detail das Zertifikat in eine Datei (DER Format) exportieren.
Mit keytool das Zertifikat importieren
C:\>cd \CFusionMX7\runtime\jre\lib\bin
C:\CFusionMX7\runtime\jre\bin>keytool -import -keystore ..\lib\security\cacerts
-alias ALIASNAME -storepass changeit -noprompt -trustcacerts -file c:\TEMP\SSLSITE.CER
Zertifikat wurde zu Keystore hinzugefügt.
ALIASNAME sollte ein kurzer Text der das Zertifkat beschriebt sein, z.b beispielseite-com. C:\TEMP\SSLSITE.CER
natürlich entsprechend anpassen mit dem Pfad und Name zum oben abgespeicherten Zertifikat.
Nach einem Neustart des ColdFusion Services sollte dann auch der cfhttp Aufruf funktionieren.