quinta-feira, junho 18, 2009

Instalando certificado digital no Coldfusion com Keytool

Tivemos alguns problemas no Servidor Web, para aproveitar a oportunidade realizei a atualização do Coldfusion 7 para Coldfusion 8 com update 8.02 não tive muita dor de cabeça para liberar o servidor, pois é importado toda configuração para a nova versão. Isso economizou algumas horas, não pensei que estivesse tão fácil para atualizar um servidor Cf7 para Cf8. Lembro que nas versões antigas era necessário reconfigurar.

Com o servidor atualizado e funcionando, tivemos uma falha inesperada em uma aplicação usando CFHTTP post com SSL. O dump da resposta CFHTTP exibia isso:
Com base nisto conclui que a atualização Cf7 para Cf8 copiou tudo com exceção dos certificados digitais que estavam instalados na VM. Portanto, foi necessário a instalação do certificado utilizado nesta aplicação para isso utilizei um arquivo bat que peguei há muito tempo atrás se não me falha a memória foi em: www.talkingtree.com/blog.

Primeiramente copie o arquivo do certificado .cer na pasta do Coldfusion na subpasta: \runtime\jre\lib\security.

Segue o arquivo run_keytool_import.bat que deve ser configurado para instalar o certificado digital utilizando keytool. Altere basicamente o que destaquei em vermelho.

@echo off
echo
echo This will import an X.509 SSL certificate into the keystore for the JVM specified
echo
echo Press Control+C to abort.
pause
SETLOCAL

rem -------------------------------------------------
rem 1) SET COLDFUSION JVM'S JAVA_HOME HERE
rem THIS SHOULD BE THE JVM USED FOR COLDFUSION MX
rem -------------------------------------------------
set JAVA_HOME=C:\ColdFusion8\runtime

rem -------------------------------------------------
rem 2) SET THE CERTIFICATE NAME AND ALIAS HERE
rem -------------------------------------------------
set CERT_NAME=site98.rejasa.com.br.cer
set CERT_ALIAS= site98.rejasa.com.br

rem -------------------------------------------------
rem 3) SET THE KEYTOOL PASSWORD HERE
rem -------------------------------------------------
set KEYTOOL_PASS=changeit

rem -------------------------------------------------
rem DO NOT EDIT BELOW THIS LINE
rem -------------------------------------------------
set JAVA_SECURITY=%JAVA_HOME%\jre\lib\security
set CERT=%JAVA_SECURITY%\%CERT_NAME%
%JAVA_HOME%\jre\bin\keytool -import -trustcacerts -keystore %JAVA_SECURITY%\cacerts -storepass %KEYTOOL_PASS% -noprompt -alias %CERT_ALIAS% -file %CERT%
ENDLOCAL
pause

Depois de executar o arquivo bat e instalar o certificado, o dump da resposta CFHTTP exibe isso:



Já pude perceber que o acesso CFHTTP com SSL funcionou, apenas faltou os parâmetros corretos.