Freelance Developpeur Expert ColdFusion, Internet & web 2.0 - Développeur CF/Railo (CFML), Java, Php, Perl, Python spécialiste. Expertise sur MOA, maitrise d'oeuvre applicative, architecture logiciel, SEO SMO, développement, optimisation et tuning gagné auprès de grands comptes, de petites et moyennes entreprises. Compétences en SQL, JavaScript (JS), JQuery, ExtJS, MVC, CMS, CRM, Framework et outils de management. Web Développeur sur Spip, WordPress, Magento, ezPublish, Drupal, Typo3, Joomla!

Problème SSL avec CF8

> Tech> ColdFusion

Croix rouge au lieu des images dans un CFDocument via HTTPS

ColdFusion, système, SSL,

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 du au fait que l’autorité de certificat (CA) n’était pas dans la base des certificats racine.

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 "<CF8ROOT>/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)

par JLepage.info le 9 août 2011 à 21:30