Configurando SSL en El HTTP Import Binding

Click here to load reader

  • date post

    26-Jun-2015
  • Category

    Documents

  • view

    286
  • download

    0

Embed Size (px)

Transcript of Configurando SSL en El HTTP Import Binding

Resumen

La Informacin sobre Seguridad en servicios web, es muy limitada por ello y con el fin de brindar una gua para necesidades similares se ha elaborado este documento que tiene como temas principales : La Configuracin de Seguridad para servicios web en la capa de transporte usando SSL, adems se ha creado un cliente Punto net para el consumo del servicio web y se ha creado una autenticacin mutua(tambin conocida como autenticacin del cliente). Por ltimo si se desea autenticar tanto cliente como servidor pero sin enviar sus mensajes encriptados se ha colocado tips para poder configurar en WAS este tipo de comunicacin.

Configuracin de Seguridad para Servicios Web Servidor WAS 7 de RAD y cliente WPS 7 de WID

Para establecer seguridad en ell nivel de transporte, utilizando SSL, se necesita crear un almacn claves (key store) y uno de confianza (trust store) que la nueva configuracin SSL usar.

Creando un almacn de claves (Key Store)Creacin del archivo almacn de claves en W.A.S 1. Logearse en la Consola de Administracin en el WAS. 2. Navegar a Security>SSL certificate and key management > Key stores and certificates.

3. Click en New e ingresar los detalles de la Figura 1. Figura 1. Creando un Nuevo archivo de almacen de claves

4. Ingresar el nombre para el almacn de claves, por ejemplo, MyKeyStore. 5. Ingresar el path del archivo key store. Usar siempre las variables WebSphere, por ejemplo, ${CONFIG_ROOT}/cells/esbCell/nodes/esbNode/MyKeys.p12.

6. Ingrese un password y confrmelo. 7. Seleccione el tipo PKCS12, que est por defecto, recomendado. 8. Click en OK y guarde la configuracin maestra. Creando una firma certificada de servidor en W.A.S. Cuando un cliente intenta conectarse con SSL , WAS retornar el certificado del servidor a el cliente, confirmando su identidad. 1. Navegar a Security>SSL certificate and key management > Key stores and certificates. 2. Click en el almacen creado recientemente. 3. Click en Personal Certificates. 4. Click en Create a self-signed certificate e ingrese los datos de la figura 2.

Figure 2. Creating a self-signed certificate

5. Ingrese un alias para el certificado, por ejemplo, myservercert. 6. Ingrese el nombre comn. Se recomienda ingresar el nombre del host de la mquina donde el certificado reside, por ejemplo, myhostname.mycompany.com. 7. Click en OK y guarde los cambios a la configuracin maestra. Creando un certificado de firma digital de cliente en W.A.S. Cuando WebSphere .A.S acte como un cliente a otro servidor e intente hacer una conexin SSL , WebSphere AS enviar el certificado de cliente a el servidor confirmando su identidad. Aunque en este caso WAS va a ser el servidor, se debe crear un certificado de cliente porque para configurar SSL se necesita indicar por defecto los certificados tanto del servidor como del cliente.

1. Navegar a Security>SSL certificate and key management > Key stores and certificates. 2. Click en el almacen de claves (key store) el cual se cre siguiendo los pasos anteriores. 3. Click en Personal Certificates. 4. Click en Create a self-signed certificate e ingrese los detalles indicados en la figura Figure 2. 5. Ingrese un alias para el certificado, por ejemplo, myclientcert. 6. Click en OK y guarde los cambios a la configuracin maestra.

Creando el almacn de confianza (trust store) en WASUn almacn de confianza contiene los certificados que el servidor confa. Los certificados de clientes son aadidos como firmas certificadas a el almacn de confianza. Para que la conexin SSL se realice se debe agregar el certificado del cliente de WID en el almacn de confianza del WAS. Creando un archivo de almacn de confianza en WAS 1. Logearse en la Consola de Administracin en WAS. 2. Navegar a Security>SSL certificate and key management > Key stores and certificates. 3. Click en New e ingresar los detalles presentados en la figura 3.

Figure 3. Creando un Nuevo almacen de confianza (trust store)

4. Ingrese el nombre para el almacn por ejemplo, MyTrustStore. 5. Ingrese el path para el almacn. Use variables del WAS, ${CONFIG_ROOT}/cells/esbCell/nodes/esbNode/MyTrust.p12. 6. Ingrese un password y su confirmacin. 7. Seleccione como tipo PKCS12, que es la opcin por defecto. 8. Click en OK y guarde los cambios a la configuracin maestra.

Creando una Configuracin SSL en WASPara poder relacionar los certificados de cliente y servidor, se crea una cadena de Transporte que enlaza la configuracin SSL especfica al puerto. Esta encuentra los certificados de cliente y servidor que sern usados por el puerto para leer la configuracin especfica SSL. Cree entonces la su configuracin SSL. 1. Logearse a la Consola de Administracin en WebSphere. 2. Navegar a Security >SSL certificate and key management > SSL configurations. 3. Click en New e ingrese los detalles indicados en la Figura 4.

Figure 4. Creando una configuracin SSL

4. Ingrese el nombre de la configuracin SSL, por ejemplo, MySSLConfiguration. 5. Seleccione el almacn de confianza (trust store), que fue creado anteriormente. 6. Seleccione el almacn de claves (key store), que se cre antes. 7. Click en Get certificate aliases (para obtener certificados). 8. Seleccione el alias del certificado del servidor, que se cre. 9. Seleccione el alias del certificado del cliente, que se cre anteriormente. 10. Click OK y guarde los cambios a la configuracin maestra.

Obligando la Autenticacin de cliente en WAS.Esto indica que solamente los clientes de confianza podrn conectarse al servidor. Esto obligar a cualquier cliente a enviar su certificado cuando se quiere establecer una comunicacin con WAS. 1. Navegar a Security >SSL certificate and key management > Key stores and certificates. 2. Click en SSL configuration, que fue creada anteriormente. 3. Click en Quality of protection (QoP) settings. (esta a la derecha del panel) 4. Seleccione Required en Client Authentication como muestra la figura 5. 5. Click en OK y guarde los cambios.

Figure 5. Obligar la autenticacin de los clientes

NOTA: Para verificar cuando WAS enve un certificado o no, se puede seleccionar None o Supported. Esto permite invocar al servicio web end-point desde un browser y ver el certificado del servidor que retornar WebSphere AS. However, asegurarse que luego de la verificacin regrese a Required.

Creando un Contenedor Web con cadena de transporte de entrada segura en WAS.Cuando se crea una cadena de transporte se debe crear un Puerto. Por el cual se va a escuchar las peticiones. 1. Logearse en la Consola de Administracin en WAS. 2. Navegar a Servers>Server Types>W. Aplication servers > server1 > Web container Settings> Web container transport chains Figura 6.

Figure 6. Navegando a Web container transport chains

3. Click en New. 4. Ingrese los detalles de la cadena de transporte como se indica en la figura 7. Nota, seleccione la plantilla de cadena terminada en Chain_2. Figura 7. Seleccionando la plantilla de la cadena de transporte

5. Ingrese el nombre para la cadena de transporte, por ejemplo, MySecureTransportChain. 6. Seleccione WebContainer-Secure(templates/chains|webcontainerchains.xml#Chain_2) como plantilla de la cadena. 7. Click en Next. 8. Ingrese los detalles del Puerto presentados en la figura 8.

Figure 8. Ingreso de parmetros requeridos

9. Ingrese el nombre del puerto, por ejemplo, MySecurePort. 10. Ingrese el nmero de puerto, por ejemplo, 8002. 11. Revise el resumen y haga click en Finish , guarde los cambios. Verifique que el puerto este asignado y habilitado SSL , vea la Figura 9.

Figura 9 El puerto creado en este caso es el 8103, fjese que SSL est habilitado.

Nota para propsitos de Verificacin, puede crear otra cadena de transporte sin SSL. Para esto seleccione WebContainer(templates/chains|webcontainer-chains.xml#Chain_1) como plantilla de la cadena de transporte, para otro Puerto por ejemplo, 8001.

Especificando la configuracin SSL en WASCuando creamos una nueva cadena de transporte, la configuracin SSL por defecto, DefaultSSLSettings, es seleccionada como la configuracin SSL de la cadena de transporte. Hace falta entonces especificar la configuracin SSL. Navegue a Servers > Servers>Server Types>W. Application servers > server1 > Web container Settings> Web container transport chains como se muestra en la Figura 6 (anterior). 1. 2. 3. 4. Click en la cadena de transporte que usted cre. Click en SSL inbound channel (SSL_4) . Seleccione la configuracin SSL, que se cre antes, vea la Figura 10. Click en OK y guarde los cambios en la configuracin maestra. Figure 10. Specificando la configuracin SSL

Creando un Host Virtual en WAS

Una vez creado la nueva cadena de transporte que especifica una nueva configuracin de SSL. Ahora usted necesita asociar su aplicacin en WAS a la nueva cadena. Para hacer esto se necesita crear un host virtual y luego crear alias host para los puertos de la cadena de transporte, los que fueron creados durante la cadena de transporte.

La aplicacin entonces necesita ser mapeada a este Nuevo host virtual. Cree el nuevo host virtual. 1. 2. 3. 4. 5. Logearse en la Consola de Administracin en WAS. Navegar a Environment >Virtual Hosts. Click en New. Ingresar un nombre para el host virtual, por ejemplo, MyVirtualHost. Click en OK y guarde los cambios.

Creando alias para el host en WebSphere AS 1. 2. 3. 4. 5. 6. 7. Navegar a Environment >Virtual Hosts. Click en el virtual host que cre antes. Click en Host Aliases. (a la derecha del panel principal) Click en New. Ingrese los detalles presentados en la figura 11. Ingrese el Puerto que especific durante la creacin de la cadena de transporte. Click en OK y guarde los cambios. Figure 11. Creating a host alias

Para propsitos de verificacin, si se ha creado una cadena de traansporte sin SSL , entonces cree otro alias para la cadena de transporte sin SSL, por ejemplo, 8001 .

Mapeando la aplicacin a el virtual host en WebSphere ASSe ha creado un host virtual , ahora se necesita mapear la aplicacin al host virtual, es decir colocar la aplicacin en el puerto para que consuman. 1. Navegar a Applications >Applications Types>WebSphere Enterprise Applications. 2. Click en la application, si no existire debe importarla local/remota supongamos que se llama , OSumaEar como se ve la Figura 12. 3. Click en la aplicacin y luego en Virtual hosts. 4. Seleccione el virtual host, que cre anteriormente Figura 13. 5. Click en OK y guarde los cambios. Figura 12. Lista de Aplicaciones

Figura 13 Seleccin del host virtual

Ahora su aplicacin esta mapeada y configurada.

Configuracin del Cliente en WebSphere Process ServerPara configurar el cliente en este caso WPS 7, se debe establecer una confianza entre el cliente y el servidor, para ello se debe agregar el certificado del cliente en el almacn de confianza del servidor y el certificado del servidor en el almacn de confianza del cliente.

Creando un almacn de claves (Key Store)Creacin del archivo almacn de claves en W.P.S 9. Logearse en la Consola de Administracin en el WPS. 10. Navegar a Security>SSL certificate and key management > Key stores and certificates. 11. Click en New e ingresar los detalles de la Figura 1. Figura 14. Creando un Nuevo archivo de almacen de claves

12. Ingresar el nombre para el almacn de claves, por ejemplo, MyKeyStore. 13. Ingresar el path del archivo key store. Usar siempre las variables WebSphere, por ejemplo, ${CONFIG_ROOT}/cells/esbCell/nodes/esbNode/MyKeys.p12.

14. Ingrese un password y confrmelo.

15. Seleccione el tipo PKCS12, que est por defecto, recomendado. 16. Click en OK y guarde la configuracin maestra. Creando una firma certificada de servidor en W.P.S. Cuando un cliente intenta conectarse con SSL , WAS retornar el certificado del servidor a el cliente, confirmando su identidad. 8. Navegar a Security>SSL certificate and key management > Key stores and certificates. 9. Click en el almacen creado recientemente. 10. Click en Personal Certificates. 11. Click en Create a self-signed certificate e ingrese los datos de la figura 15. Figure 15. Creating a self-signed certificate

12. Ingrese un alias para el certificado, por ejemplo, myservercert. 13. Ingrese el nombre comn. Se recomienda ingresar el nombre del host de la mquina donde el certificado reside, por ejemplo, myhostname.mycompany.com. 14. Click en OK y guarde los cambios a la configuracin maestra. Creando un certificado de firma digital de cliente en W.P.S. En este caso WPS va a ser el cliente, pero se debe crear un certificado de servidor tambin porque para configurar SSL se necesita indicar por defecto los certificados tanto del servidor como del cliente. 7. Navegar a Security>SSL certificate and key management > Key stores and certificates. 8. Click en el almacen de claves (key store) el cual se cre siguiendo los pasos anteriores. 9. Click en Personal Certificates. 10. Click en Create a self-signed certificate e ingrese los detalles indicados en la figura Figure 2. 11. Ingrese un alias para el certificado, por ejemplo, myclientcert. 12. Click en OK y guarde los cambios a la configuracin maestra.

Creando el almacn de confianza (trust store) en WPSUn almacn de confianza contiene los certificados que el servidor confa. Los certificados de clientes son aadidos como firmas certificadas a el almacn de confianza. Para que la conexin SSL se realice se debe agregar el certificado del cliente de WID en el almacn de confianza del WAS. Creando un archivo de almacn de confianza en WPS 9. Logearse en la Consola de Administracin en WPS. 10. Navegar a Security>SSL certificate and key management > Key stores and certificates. 11. Click en New e ingresar los detalles presentados en la figura 16.

Figure 16. Creando un Nuevo almacen de confianza (trust store)

12. Ingrese el nombre para el almacn por ejemplo, MyTrustStore. 13. Ingrese el path para el almacn. Use variables del WAS, ${CONFIG_ROOT}/cells/esbCell/nodes/esbNode/MyTrust.p12. 14. Ingrese un password y su confirmacin. 15. Seleccione como tipo PKCS12, que es la opcin por defecto. 16. Click en OK y guarde los cambios a la configuracin maestra.

Creando una Configuracin SSL en WPSPara poder relacionar los certificados de cliente y servidor, se crea una cadena de Transporte que enlaza la configuracin SSL especfica al puerto. Esta encuentra los certificados de cliente y servidor que sern usados por el puerto para leer la configuracin especfica SSL. Cree entonces la su configuracin SSL. 11. Logearse a la Consola de Administracin en WebSphere. 12. Navegar a Security >SSL certificate and key management > SSL configurations. 13. Click en New e ingrese los detalles indicados en la Figura 17.

Figure 17. Creando una configuracin SSL

14. Ingrese el nombre de la configuracin SSL, por ejemplo, MySSLConfiguration. 15. Seleccione el almacn de confianza (trust store), que fue creado anteriormente. 16. Seleccione el almacn de claves (key store), que se cre antes. 17. Click en Get certificate aliases (para obtener certificados). 18. Seleccione el alias del certificado del servidor, que se cre. 19. Seleccione el alias del certificado del cliente, que se cre anteriormente. 20. Click OK y guarde los cambios a la configuracin maestra.

Proceso desarrollado en el WebSphere Process ServerEspecificando el key Store por defecto en WPS 1. Navegue a Application servers > server1 > Process definition > 2. Click en Java Virtual Machine. 3. En el campo Generic JVM arguments, ingrese - Djavax.net.ssl.keyStore=path al archivo key store del cliente que se cre , Djavax.net.ssl.keyStorePassword=password del archivo WPS de cliente de key store. por ejemplo, -Djavax.net.ssl.keyStore=${CONFIG_ROOT}/cells/qcell/nodes/qnode/mikey.p12

- Djavax.net.ssl.keyStorePassword=wgutierrez Fjese en figura Figura parte de la pantalla de configuracin.

Exportando certificados a trust store Se va a exporter un certificado desde el key store de un servidor a el trust store de otro. Se va a extraer el certifdicado dl cliente de WPS y luego se lo va a agregar a los certificados firmados del WAS. Adems se extraer el certificado del servidor de WAS a los certificados foirmados del trust store en WebSphere Process Server. Exportando el certificado de cliente WPS a trust store de WAS 1. Navegue a SSL certificate and key management > Key stores and certificates > 2. Seleccione el almacn de claves (key store) creado por usted en WPS. 3. Seleccione ahora Personal certificates. 4. En mi caso el path queda SSL certificate and key management > Key stores and certificates > Mialmacenclaves > Personal certificates 5. Luego seleccione el certificado del cliente como indica la figura . Figura extraccin del certificado de cliente WPS

6. Ingrese los detalles como se ve en la figura (Nota indique el path donde va a guardar el certificado).

Transferir el archive de certificado extraido a WAS en RAD. 1. 2. 3. 4. 5. Logearse en La Consola de Administracin del WAS del RAD. Navegar a Security >SSL certificate and key management > Key stores and certificates . Click en el trust store que se cre. Click en el botn Add Ingrese los detalles de la Figura.

6. Ingrese un Alias para el certificado 7. Ingrese el path o ruta del archivo que usted export en el punto anterior. 8. Pulse ok. Ahora exporte el certificado del WAS a el trust store de WPS 1. Primero abra la Consola de Administracin del WAS del RAD 2. Navigate to Security>SSL certificate and key management > Key stores and

certificates. 3. Click en el key store que cre antes. 4. Click en Personal certificates. 5. Seleccione el certificado del servidor que se cre.6. Pulse el botn exportar. 7. En la pantalla digite el path o ruta donde guardar el certificado. Figura Figura

Luego Aada el certificado exportado del WAS a el trust store de WPS 1. Primero abra la Consola de Administracin del WAS del RAD 2. Navigate to Security>SSL certificate and key management > Key stores and

certificates. 3. Click en el trust store que cre antes. 4. Click en Signed certificates. 5. Seleccione el botn add.6. Coloque el path del certificado del servidor was exportado anteriormente Figura. 7. Pulse OK. 8. Pulse el enlace para guardar los cambios . Figura

Ahora los servidores de RAD(WAS) y de WID(WPS) confan el uno en el otro, restaure ambos servidores y listo.

PROCESO DE PRUEBA CON WID PROCESS SERVER Primero debemos proceder importando al interface remota, normalmente, sin que el servidor AS haya habilitado la seguridad SSL , es decir instalamos el EAR en el host por defecto, sin utilizar el host virtual que cre en el WAS. Para ello vamos a: 1. 2. 3. 4. 5. WAS ingresamos a la Consola de Administracin (autenticarse). Seleccionamos la opcin Aplications y luego WebSphere enterpriese applications Seleccione la aplicacin o EAR que usted va utilizar. Localize el enlace virtual host Seleccione default_host (Eso permite que la aplicacin sea levantada en el host por defecto y luego podamos importar su estructura). Fjese en la figura. 6. Por seguridad reinicie WAS y publique su aplicacin.

Ahora Por el lado del cliente en WID : 1. 2. 3. 4. 5. 6. cree un nuevo modulo. Seleccione en el nuevo mdulo la opcin Interfases Haga click derecho y seleccione import Luego seleccione WSDL and XSD en el tipo Marque la opcin Remote WSDL or XSD file. En la siguiente ventana coloque el URL en el caso de mi ejemplo http://192.168.87.88:9081/OperacionSuma/SumaService/SumaService.wsdl 7. Pulse finish

Creando la Interface para el Proceso 1. 2. 3. 4. Cree una nueva interface para el Proceso de Negocio Para lo cual click derecho en interfaces , new Ingrese el nombre y la carpeta contenedora Una vez creada la interface agrguele una operacin pulsando el botn (Add Request Response operation). Vea la figura. 5. Cambio los tipos de datos ubicando los tipos de datos que necesita para relacionar con la interface, haga click en types de request y response, cmbielos.

Creando el Proceso de Negocio 1. 2. 3. 4. 5. Haga click ahora en integration logic en la estructura del mdulo Seleccione new Bussines Process Ingrese el nombre del proceso y la carpeta contenedora. Seleccione en el tipo de Proceso de negocio Microflow En la siguiente ventana seleccione la interface , pulsando el botn browse y seleccione la interface creada para el proceso 6. Fjese que la operacin est chequeada 7. Pulse el botn finish 8. Se crear un diagrama de proceso de negocio como el de la figura.

Figura .. Diagrama de Bussines Process generado

9. Arrastre la interface importada , a el rea del diagrama de proceso generado, esto crea una referencia a la interface, para luego poder usarla. 10. En el paleta seleccione la opcin invoke . 11. Marcado invoke, seleccione la pestaa inferior de propiedades, y en el men inferior izquierdo seleccione details (detalles). 12. Click en el botn browse 13. Seleccione la interface importada. 14. Cambie los inputs y outpus respectivos 15. Guarde los cambios. Fjese en la figura.

Ahora hacemos Doble click en Assembly Diagram y arrastramos el Bussines Process creados anteriormente, adems arrastramos la interface importada y le va a preguntar la forma de importar, seleccione Import with Web Service Binding, de tal forma que quede como la siguiente figura:

Ahora conectamos arrastrando desde el proceso a la interface. Asi:

Y listo para probar. En la ventana de Bussines Integration seleccione el modulo a probar y all escoja la opcin Test>Test Module. Figura

Se le abre una ventana en al que debe ingresar los parmetros que requiera el servicio, como:

Y pulse continuar, luego seleccione el servidor

Y pulse finish, para obtener una salida:

Ahora regresemos a el WAS 7 y publique la aplicacin en el host virtual. Si se ejecuta una prueba nuevamente se obtendr un error como el siguiente:

Ahora regrese a Assembly Diagram y seleccione la interface como muestra la figura.

Seleccione propiedades y detalles(Details) y cambie el parmetro URL al del servicio qu esta configurado para usar SSL.

Por ltimo vuelva a ejecutar la prueba.

OPCIN PARA COMUNICARSE CON SSL SIN ENCRIPTACIN. La calidad de proteccin (QoP) En La seccin de QoP se puede especificarel nivel de seguridad, ceros, y configuracin de autenticacin mutua para la configuracin de la Capa Coneccin Segura (SSL) .

Para ver esta pgina de la consola administrativa, pulse el botn Security > SSL certificate and key management. Bajo Configuration settings, click en Manage endpoint security configurations > {Inbound | Outbound} > ssl_configuration. Bajo los items relacionados, click en SSL configurations > . Click {la seleccin de la configuracin SSL que se desee }. Bajo propiedades adicionales (Aditional properties), click en Quality of protection (QoP) settings, como se muetsra en la figura.

Una vez seleccionado la opcin de Quality of Protection, aparecer la siguiente ventana:

Donde, Autenticacin de Cliente Si se selecciona la opcin None ,el servidor no solicita un certificado al cliente durante el apretn de manos. Si se ha seleccionado Supported , el servidor solicita un certificado al cliente. Si el cliente no tiene certificado, el apretn de manos podra darse. Si se ha seleccionado la opcin Required, el servidor solicita que el cliente enve su certificado. Si el cliente no tiene un certificado entonces la conexin (apretn de manos) falla. Tipo de Dato: Text Default: None Protocolo Especifica el protocolo para el apretn de manos usando Secure Sockets Layer (SSL) handshake . Este protocolo es tpicamente SSL_TLS, el cual soporta todos los protocolos de apretn de manos excepto por SSLv2 en el lado del servidor. Tipo de Dato: text Default: SSL_TLS Proveedor Especifica una de los proveedores predefinidos de JSSE , por defecto se usa el IBMJSSE2 .

Grupos de perfiles de seguridad Especifica los grupos que pueden ser seleccionados dependiendo de la seguridad que se desee asignar. El cipher suite stronger es el de mayor seguridad ; aun cuando , este puede afectar en el desempeo. Adems dependiendeo del tipo que se seleccione Stron,Medium,Weak,Custom, se pude tener diferentes tipos de chiper suites .

Nota: En el caso de necesitar utilizar SSL pero slo para autenticacin pero sin cifrado, se puede utilizar uno de los grupos: Weak o Custom. Que usan

SLS_RSA_WITH_NULL_SHA SLS_RSA_WITH_NULL_MD5.