Problème SSL avec CF8

Situation
Nous avons rencontré un problème lors d’un changement de certificat sur un serveur ColdFusion 8. En effet les directives CFDocument et CFHttp ne pouvaient pas accéder à des URLs via un flux HTTPS local ou à distance. Les images d’un document PDF apparaissent en tant que croix rouge dans un carré noir.
Nous avons pensé rapidement à un problème de certificat, mais les navigateurs ne semblaient pas refuser la connexion. Nous avons pensé aussi à un problème de version, mais CF8 supporte nativement le SSLv3 du certificat.

Théorie
Il s’avère qu’en fait, le certificat n’était pas valide pour CF8, vraisemblablement dû au fait que l’autorité de certificat (CA) n’était pas dans la base des certificats racines.

Solution
La solution était plutôt simple et vite trouvée sur le net, il suffisait d’importer le certificat du site dans la base des certificats du serveur. Oui, mais comment ? La documentation officielle indique bien comment utiliser "keytool" pour importer le certificat, mais certain point ne sont pas très précis.
Le certificat doit être importé dans la base de certificat (trustStore ou cacerts) du serveur CF8. Dans le cas de CF8 Standard, cette base se trouve dans le répertoire "/runtime/jre/lib/security/cacerts".
- Exporter le certificat depuis le navigateur. Sur FF, allez sur le site en question, double-cliquez sur le cadena, puis cliquez sur "voir le certificat". Enfin dans l’onglet "Détails" cliquez sur "Exporter".
- Placer le certificat (.cer) exporté dans le répertoire de la base de certificat.
- Ouvrez une console windows (ou Linux) et placez vous dans le répertoire de la base de certificat.
- tapez ensuite la commande suivante :

 

<CF8Root>\runtime\jre\bin\keytool.exe -keystore cacerts -import -alias unnomunique -file moncertificat.cer -trustcacerts 

Le mot de passe qu’on vous demande est "changeit".
- Il faut redémarrer le service ColdFusion. (hélas)