Una tarea administrativa muy común es la de importar
certificados digitales en el servidor WebLogic para comunicarse con otros
sistemas utilizando un medio de comunicación seguro, en este caso a través del
protocolo SSL.
Esta tarea se convierte en obligatoria cuando tenemos una
aplicación que necesita consumir una aplicación o servicio externo, ya sea que
se encuentre en otro servidor WebLogic, o cualquier otro servidor de aplicaciones. Normalmente, para tener acceso a estas
aplicaciones remotas utilizamos el protocolo HTTPS, lo cual es una versión del
protocolo HTTP con soporte del protocolo SSL.
En esta entrada voy a ejemplificar como importar un
certificado en el servidor WebLogic para que pueda conectarse al sistema de ElasticEmail,
el cual requiere una comunicación con HTTPS. ElasticEmail está disponible en la
siguiente URL https://api.elasticemail.com.
Pre-requisitos
Procedimiento
1. Existen distintas formas y medios para obtener el
certificado de un sistema/servidor, desde un navegador Web (Internet Explorer,
Google Chrome, etc) hasta programas dedicados como openssl. En este caso voy a
utilizar openssl para crear una conexión ElasticEmail:
-bash-3.2$ openssl s_client -connect
api.elasticemail.com:443
2. Ubicar el certificado, delimitado por las cadenas
-----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----
Por ejemplo:
3. Copiar y pegar el certificado en un archivo
-bash-3.2$
vi elastic-email.crt
4. En este ejemplo voy a utilizar la utilería keytool del JDK
de java para importar el certificado generado en el paso anterior en el
keystore de confianza (trust keystore) del servidor WebLogic:
keytool
-import -v -trustcacerts -alias elastic-email
-file elastic-email .crt -keystore /opt/oracle/middleware/wlserver_10.3/server/lib/DemoTrust.jks
-storepass DemoTrustKeyStorePassPhrase
Nota: Para efectos de ejemplo,
el certificado se importa en el keystore demo del servidor WebLogic. En su ambiente productivo importelo en su propio trust keystore.
5. Finalmente, se debe reiniciar el módulo SSL del servidor WebLogic, o en su defecto reinicar todo el servidor Weblogic en donde se encuentra la aplicación que requiere conectarse a ElasticEmail.
En mi experiencia, en algunos casos ha sido necesario
agregar el certificado al keystore del JDK, me refiero al archivo cacerts que se encuentra en
$JAVA_HOME/jre/lib/security. Esto ah sido necesario en certificados como los de Google. En este caso podemos usar:
keytool
-import -v -trustcacerts -alias elastic-email
-file elastic-email .crt -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
Oi ... Este é o blog perfeito para quem quer saber sobre este tópico. Você sabe Você definitivamente colocar uma nova rodada sobre um assunto thats sido escrito sobre por anos. Grandes coisas, ótimo!
ResponderEliminarCertificado e-cpf
Gracias,
EliminarTe gustaría algún tema en especial?
PD: con tomcat y cliente directo de java sí logro conectarme =/
ResponderEliminarHola, gracias, he estado haciendo esto pero tengo un error,
ResponderEliminarel certificado que importo esTLS Web Server Authentication (1.3.6.1.5.5.7.)
estoy usando weblogic 10.3.5
http://theheat.dk/blog/?p=2059
alguna recomendación?
Hola gracias por tu post.
ResponderEliminarUna pregunta en este caso es el privado o publico lo q estas instalando.
Que tal, instalamos el certificado con la llave pública; La llave privada se maneja en el servidor remoto.
EliminarSaludos,
Muchas gracias pr responder,
Eliminaren el caso de que se requiera el certificado privado para encriptar de nuestro lado, tambien se instala tal como lo comentas ?
No, para ese caso debes instarlo como un certificado de identidad, es un procedimiento similar, pero tiene pasos adicionales.
EliminarPara un ambiente productivo lo recomendable es que generes tu propio keystore de identidad, en el cual se almacena tu certificado de identidad, o bien puedes utilizar el identity keystore por defecto.
Una vez que tengas tu keystore de identidad debes realizar la configuración correspondiente desde la Consola de Administración WebLogic, en Servers > "nombre del servidor weblogic" > General Configuration > Keystores, y Servers > "nombre del servidor weblogic" > General Configuración > SSL.
Saludos,
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola tengo problemas al instalar certificado en weblogic 11g... crees poder ayudarme x favor??
ResponderEliminarClaro, cual es tu problema?
EliminarBuenos días
ResponderEliminarUna pregunta, por que en casos es necesario subir los certificados al cacert y no basta con el demotrust?
AL igual en que casos también hay que ponerlos en el demoidentity?
Gracias
En algunos casos es necesario por que el DemoTrust no cuenta con todos los certificados de raíz que existen, ya sea porque puede existir nuevos certificados o los que existen expiran y son actualizados, también porque puede surgir nuevas Autoridades Certificadoras que emiten nuevos certificados.
ResponderEliminarEn el DemoTrust ponemos los certificados de los servidores externos a los cuales alguna aplicación que esta en tu servidor weblogic necesita comunicarse, es como tener la llave para abrir la puerta del servidor externo.
En el DemoIdentity colocamos los certificados que tu servidor weblogic va a utilizar para presentar su identidad, bien puede ser un certificado firmado por una autoridad o un certificado auto-firmado.