Você está na página 1de 30

Resumen

La Información sobre Seguridad en servicios web, es muy limitada por ello y con el fin de
brindar una guía para necesidades similares se ha elaborado este documento que tiene como
temas principales : La Configuración de Seguridad para servicios web en la capa de
transporte usando SSL, además se ha creado un cliente Punto net para el consumo del
servicio web y se ha creado una autenticación mutua(también conocida como autenticación
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
comunicación.

Configuración 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
almacén claves (key store) y uno de confianza (trust store) que la nueva configuración SSL
usará.

Creando un almacén de claves (Key Store)

Creación del archivo almacén de claves en W.A.S

1. Logearse en la Consola de Administración 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 almacén 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 confírmelo.


7. Seleccione el tipo PKCS12, que está por defecto, recomendado.
8. Click en OK y guarde la configuración 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 común. Se recomienda ingresar el nombre del host de la máquina
donde el certificado reside, por ejemplo, myhostname.mycompany.com.
7. Click en OK y guarde los cambios a la configuración maestra.

Creando un certificado de firma digital de cliente en W.A.S.

Cuando WebSphere .A.S actúe como un cliente a otro servidor e intente hacer una conexión
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 configuración maestra.

Creando el almacén de confianza (trust store) en WAS

Un almacén de confianza contiene los certificados que el servidor confía. Los certificados de
clientes son añadidos como firmas certificadas a el almacén de confianza. Para que la
conexión SSL se realice se debe agregar el certificado del cliente de WID en el almacén de
confianza del WAS.

Creando un archivo de almacén de confianza en WAS

1. Logearse en la Consola de Administración 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 almacén por ejemplo, MyTrustStore.


5. Ingrese el path para el almacén. Use variables del WAS, $
{CONFIG_ROOT}/cells/esbCell/nodes/esbNode/MyTrust.p12 .
6. Ingrese un password y su confirmación.
7. Seleccione como tipo PKCS12, que es la opción por defecto.
8. Click en OK y guarde los cambios a la configuración maestra.

Creando una Configuración SSL en WAS

Para poder relacionar los certificados de cliente y servidor, se crea una cadena de Transporte
que enlaza la configuración SSL específica al puerto. Esta encuentra los certificados de
cliente y servidor que serán usados por el puerto para leer la configuración específica SSL.

Cree entonces la su configuración SSL.

1. Logearse a la Consola de Administración 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 configuración SSL

4. Ingrese el nombre de la configuración SSL, por ejemplo, MySSLConfiguration.


5. Seleccione el almacén de confianza (trust store), que fue creado anteriormente.
6. Seleccione el almacén 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 configuración maestra.

Obligando la Autenticación de cliente en WAS.

Esto indica que solamente los clientes de confianza podrán conectarse al servidor. Esto
obligará a cualquier cliente a enviar su certificado cuando se quiere establecer una
comunicación 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 autenticación de los clientes

NOTA: Para verificar cuando WAS envíe 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 verificación 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 Administración 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|webcontainer-
chains.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 parámetros requeridos

9. Ingrese el nombre del puerto, por ejemplo, MySecurePort.


10. Ingrese el número 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, fíjese que SSL está habilitado.

Nota para propósitos de Verificación, 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 configuración SSL en WAS


Cuando creamos una nueva cadena de transporte, la configuración SSL por defecto,
DefaultSSLSettings, es seleccionada como la configuración SSL de la cadena de transporte.
Hace falta entonces especificar la configuración 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. Click en la cadena de transporte que usted creó.


2. Click en SSL inbound channel (SSL_4).
3. Seleccione la configuración SSL, que se creó antes, vea la Figura 10.
4. Click en OK y guarde los cambios en la configuración maestra.

Figure 10. Specificando la configuración SSL

Creando un Host Virtual en WAS


Una vez creado la nueva cadena de transporte que especifica una nueva configuración de
SSL. Ahora usted necesita asociar su aplicación 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 aplicación entonces necesita ser mapeada a este Nuevo host virtual. Cree el nuevo host
virtual.

1. Logearse en la Consola de Administración en WAS.


2. Navegar a Environment >Virtual Hosts.
3. Click en New.
4. Ingresar un nombre para el host virtual, por ejemplo, MyVirtualHost.
5. Click en OK y guarde los cambios.

Creando alias para el host en WebSphere AS

1. Navegar a Environment >Virtual Hosts.


2. Click en el virtual host que creó antes.
3. Click en Host Aliases. (a la derecha del panel principal)
4. Click en New.
5. Ingrese los detalles presentados en la figura 11.
6. Ingrese el Puerto que especificó durante la creación de la cadena de transporte.
7. Click en OK y guarde los cambios.

Figure 11. Creating a host alias

Para propósitos de verificación, 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 aplicación a el virtual host en WebSphere AS


Se ha creado un host virtual , ahora se necesita mapear la aplicación al host virtual, es decir
colocar la aplicación 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 aplicación 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 Selección del host virtual

Ahora su aplicación esta mapeada y configurada.

Configuración del Cliente en WebSphere Process Server


Para 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 almacén de
confianza del servidor y el certificado del servidor en el almacén de confianza del cliente.

Creando un almacén de claves (Key Store)

Creación del archivo almacén de claves en W.P.S

9. Logearse en la Consola de Administración 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 almacén 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 confírmelo.


15. Seleccione el tipo PKCS12, que está por defecto, recomendado.
16. Click en OK y guarde la configuración 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 común. Se recomienda ingresar el nombre del host de la máquina
donde el certificado reside, por ejemplo, myhostname.mycompany.com.
14. Click en OK y guarde los cambios a la configuración 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 también
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 configuración maestra.

Creando el almacén de confianza (trust store) en WPS

Un almacén de confianza contiene los certificados que el servidor confía. Los certificados de
clientes son añadidos como firmas certificadas a el almacén de confianza. Para que la
conexión SSL se realice se debe agregar el certificado del cliente de WID en el almacén de
confianza del WAS.

Creando un archivo de almacén de confianza en WPS

9. Logearse en la Consola de Administración 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 almacén por ejemplo, MyTrustStore.


13. Ingrese el path para el almacén. Use variables del WAS, $
{CONFIG_ROOT}/cells/esbCell/nodes/esbNode/MyTrust.p12 .
14. Ingrese un password y su confirmación.
15. Seleccione como tipo PKCS12, que es la opción por defecto.
16. Click en OK y guarde los cambios a la configuración maestra.

Creando una Configuración SSL en WPS

Para poder relacionar los certificados de cliente y servidor, se crea una cadena de Transporte
que enlaza la configuración SSL específica al puerto. Esta encuentra los certificados de
cliente y servidor que serán usados por el puerto para leer la configuración específica SSL.

Cree entonces la su configuración SSL.

11. Logearse a la Consola de Administración 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 configuración SSL

14. Ingrese el nombre de la configuración SSL, por ejemplo, MySSLConfiguration.


15. Seleccione el almacén de confianza (trust store), que fue creado anteriormente.
16. Seleccione el almacén 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 configuración maestra.

Proceso desarrollado en el WebSphere Process Server


Especificando 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

Fíjese en figura

Figura parte de la pantalla de configuración.

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. Además 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 almacén 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 extracción 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. Logearse en La Consola de Administración del WAS del RAD.


2. Navegar a Security >SSL certificate and key management > Key stores and certificates .
3. Click en el trust store que se creó.
4. Click en el botón Add
5. 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 Administración 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 botón exportar.
7. En la pantalla digite el path o ruta donde guardará el certificado. Figura

Figura
Luego Añada el certificado exportado del WAS a el trust store de WPS

1. Primero abra la Consola de Administración 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 botón 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) confían 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. WAS ingresamos a la Consola de Administración (autenticarse).


2. Seleccionamos la opción Aplications y luego WebSphere enterpriese applications
3. Seleccione la aplicación o EAR que usted va utilizar.
4. Localize el enlace virtual host
5. Seleccione default_host (Eso permite que la aplicación sea levantada en el host por
defecto y luego podamos importar su estructura). Fíjese en la figura.
6. Por seguridad reinicie WAS y publique su aplicación.

Ahora Por el lado del cliente en WID :

1. cree un nuevo modulo.


2. Seleccione en el nuevo módulo la opción Interfases
3. Haga click derecho y seleccione import
4. Luego seleccione WSDL and XSD en el tipo
5. Marque la opción Remote WSDL or XSD file.
6. 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. Cree una nueva interface para el Proceso de Negocio


2. Para lo cual click derecho en interfaces , new
3. Ingrese el nombre y la carpeta contenedora
4. Una vez creada la interface agréguele una operación pulsando el botón (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, cámbielos.

Creando el Proceso de Negocio

1. Haga click ahora en integration logic en la estructura del módulo


2. Seleccione new Bussines Process
3. Ingrese el nombre del proceso y la carpeta contenedora.
4. Seleccione en el tipo de Proceso de negocio Microflow
5. En la siguiente ventana seleccione la interface , pulsando el botón browse y seleccione
la interface creada para el proceso
6. Fíjese que la operación esté chequeada
7. Pulse el botón 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 opción invoke .
11. Marcado invoke, seleccione la pestaña inferior de propiedades, y en el menú inferior
izquierdo seleccione details (detalles).
12. Click en el botón browse
13. Seleccione la interface importada.
14. Cambie los inputs y outpus respectivos
15. Guarde los cambios. Fíjese en la figura.

Ahora hacemos Doble click en Assembly Diagram y arrastramos el Bussines Process


creados anteriormente, además 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


opción Test>Test Module. Figura

Se le abre una ventana en al que debe ingresar los parámetros 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 aplicación 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 parámetro URL al del servicio qu esta


configurado para usar SSL.

Por último vuelva a ejecutar la prueba.

OPCIÓN PARA COMUNICARSE CON SSL SIN ENCRIPTACIÓN.

La calidad de protección (QoP)


En La sección de QoP se puede especificarel nivel de seguridad, ceros, y configuración de
autenticación mutua para la configuración de la Capa Conección Segura (SSL) .

Para ver esta página de la consola administrativa, pulse el botón 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 selección de la configuración 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 opción de Quality of Protection, aparecerá la siguiente ventana:


Donde,

Autenticación de Cliente

Si se selecciona la opción None ,el servidor no solicita un certificado al cliente durante el apretón de
manos. Si se ha seleccionado Supported , el servidor solicita un certificado al cliente. Si el cliente no
tiene certificado, el apretón de manos podría darse. Si se ha seleccionado la opción Required, el
servidor solicita que el cliente envíe su certificado. Si el cliente no tiene un certificado entonces la
conexión (apretón de manos) falla.

Tipo de Dato: Text

Default: None

Protocolo

Especifica el protocolo para el apretón de manos usando Secure Sockets Layer (SSL) handshake .
Este protocolo es típicamente SSL_TLS, el cual soporta todos los protocolos de apretón 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
desempeño. Además 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 sólo para autenticación 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.

Você também pode gostar