Control del gestor de confianza de las decisiones de confianza sobre certificados X.509
La función del gestor de confianza es validar el certificado SSL (Secure Sockets Layer) que envía el igual, que incluye la verificación de la firma y la comprobación de la fecha de caducidad del certificado. Un gestor de confianza JSSE (Java™ Secure Socket Extension) determina si se puede confiar en el igual remoto durante un reconocimiento de comunicación SSL.
WebSphere Application Server tiene la capacidad de llamar a varios gestores de confianza durante una conexión SSL. El gestor de confianza predeterminado realiza la validación estándar de certificados mientras que los plug-ins del gestor de confianza personalizados ejecutan la validación personalizada como, por ejemplo, la verificación de nombres. Para obtener más información, consulte Ejemplo: desarrollo de un gestor de confianza personalizada para decisiones de confianza SSL personalizadas
Cuando se configura un gestor de confianza en una configuración SSL del extremo del servidor, el servidor llama al método isClientTrusted. Cuando se configura un gestor de confianza en una configuración SSL del extremo del cliente, el cliente llama al método isServerTrusted. La cadena de certificados de igual se pasa a estos métodos. Si el gestor de confianza opta por no confiar en la información de igual, se podría generar una excepción para forzar un error en el reconocimiento de comunicación.
Opcionalmente, WebSphere Application Server proporciona la interfaz com.ibm.wsspi.ssl.TrustManagerExtendedInfo para que se pueda pasar información adicional al gestor de confianza. Para obtener más información, consulte la interfaz com.ibm.wsspi.ssl.TrustManagerExtendedInfo.
Gestor de confianza IbmX509 por omisión
<trustManagers xmi:id="TrustManager_1132357815717" name="IbmX509" provider="IBMJSSE2"
algorithm="IbmX509" managementScope="ManagementScope_1132357815717"/>
El gestor de confianza proporciona un certificado de firmante para
verificar el certificado de igual que se envía durante el reconocimiento
de comunicación. Los firmantes que se añaden al almacén de confianza para
la configuración SSL deben ser de confianza. Si no confía en los firmantes
o no desea que otros se conecten a sus servidores, considere la
posibilidad de eliminar los certificados raíz predeterminados de las
autoridades certificadoras (CA). También puede eliminar cualquier
certificado si no puede verificar su origen.Gestor de confianza IbmPKIX por omisión
Puede utilizar el gestor de confianza IbmPKIX predeterminado para sustituir al gestor de confianza IbmX509, como se muestra en el siguiente ejemplo de código:<trustManagers xmi:id="TrustManager_1132357815719" name="IbmPKIX" provider="IBMJSSE2"
algorithm="IbmPKIX" trustManagerClass="" managementScope="ManagementScope_1132357815717">
<additionalTrustManagerAttrs xmi:id="DescriptiveProperty_1132357815717"
name="com.ibm.security.enableCRLDP" value="true" type="boolean"/>
<additionalTrustManagerAttrs xmi:id="DescriptiveProperty_1132357815718"
name="com.ibm.jsse2.checkRevocation" value="true" type="boolean"/>
</trustManagers>
<trustManagers xmi:id="TrustManager_managementNode_2" name="IbmPKIX" provider=
"IBMJSSE2" algorithm="IbmPKIX" trustManagerClass=""
managementScope="ManagementScope_managementNode_1">
<additionalTrustManagerAttrs xmi:id="DescriptiveProperty_1" name="com.ibm.se
curity.enableCRLDP" value="false" type="boolean" displayNameKey="" nlsRangeKey="
" hoverHelpKey="" range="" inclusive="false" firstClass="false"/>
<additionalTrustManagerAttrs xmi:id="DescriptiveProperty_2" name="com.ibm.js
se2.checkRevocation" value="false" type="boolean" displayNameKey="" nlsRangeKey=
"" hoverHelpKey="" range="" inclusive="false" firstClass="false"/>
<additionalTrustManagerAttrs xmi:id="DescriptiveProperty_3" name="ocsp.enabl
e" value="false" type="String" displayNameKey="" nlsRangeKey="" hoverHelpKey=""
range="" inclusive="false" firstClass="false"/>
<additionalTrustManagerAttrs xmi:id="DescriptiveProperty_4" name="ocsp.respo
nderURL" value="http://ocsp.example.net:80" type="String" displayNameKey=""
nlsRangeKey="" hoverHelpKey="" range="" inclusive="false" firstClass="false"/>
<additionalTrustManagerAttrs xmi:id="DescriptiveProperty_5" name="ocsp.respo
nderCertSubjectName" value="" type="String" displayNameKey="" nlsRangeKey="" hov
erHelpKey="" range="" inclusive="false" firstClass="false"/>
<additionalTrustManagerAttrs xmi:id="DescriptiveProperty_6" name="ocsp.respo
nderCertIssuerName" value="" type="String" displayNameKey="" nlsRangeKey="" hove
rHelpKey="" range="" inclusive="false" firstClass="false"/>
<additionalTrustManagerAttrs xmi:id="DescriptiveProperty_7" name="ocsp.respo
nderCertSerialNumber" value="" type="String" displayNameKey="" nlsRangeKey="" ho
verHelpKey="" range="" inclusive="false" firstClass="false"/>
</trustManagers>
Consulte Ejemplo: Habilitación de la comprobación de revocación de certificado con el gestor de confianza IbmPKIX predeterminado para obtener más información sobre la utilización del gestor de confianza IbmPKIX predeterminado.
Además del rol de verificación estándar de certificados, el gestor de confianza IbmPKIX busca las propiedades OCSP y los certificados que contengan puntos de distribución CRL (lista de revocación de certificados). Este proceso se conoce como comprobación de CRL ampliada. Al seleccionar un gestor de confianza, las propiedades asociadas se establecen automáticamente como propiedades del sistema Java de modo que los proveedores IBMCertPath e IBMJSSE2 tengan conocimiento de que la comprobación de CRL está habilitada.
Diferencias entre los gestores de confianza Ibmx509 e IbmPKIX
- El gestor de confianza IbmX509 valida la cadena de certificados completa independientemente de cuáles son los certificados en los que confía el cliente/servidor. Sin embargo, el gestor de confianza IbmPKIX no valida un certificado ni siquiera si le indica que desea confiar en ese certificado. El gestor de confianza IbmPKIX sólo valida los certificados que proceden del que está firmado por el certificado que usted ha marcado como de confianza hasta el certificado final, sin secundarios. Además,
- IbmX509 requiere que el certificado CA raíz posea la ampliación de RESTRICCIONES BÁSICAS. De lo contrario, el certificado no se puede utilizar como certificado CA raíz. IbmPKIX not tiene este requisito de RESTRICCIONES BÁSICAS para los certificados CA raíz.
- El gestor de confianza IbmX509 lleva a cabo comprobaciones de validación de firma y vencimiento de certificados para validar los certificados. El gestor de confianza IbmPKIX realiza estas mismas validaciones, más otra comprobación más avanzada, la CTL (Certificate Revocation List), que determina si la entidad emisora de certificados (CA) ha revocado el certificado.
- El gestor de confianza IbmPKIX obtiene automáticamente una CRL cuando se recibe un certificado si existen ampliaciones de punto de distribución (DP) de la CRL.
Ademas, se puede utilizar OCSP (Online Certificate Status Protocol) para realizar una comprobación en línea de la validez del certificado. No obstante, esta capacidad requiere establecer propiedades del sistema adicionales, tal como se documentan en la publicación Java Certification Path API Programmer's Guide, disponible en el sitio web de IBM® developerWorks.
Gestor de confianza personalizado
Puede definir un gestor de confianza personalizado para realizar una comprobación de confianza adicional, basada en las necesidades del entorno. Por ejemplo, en un entorno, podría habilitar sólo las conexiones de la misma subred TCP (Transmission Control Protocol). La interfaz com.ibm.wsspi.ssl.TrustManagerExtendedInfo proporciona información ampliada sobre la conexión que no proporciona la interfaz javax.net.ssl.X509TrustManager de JSSE (Java Secure Sockets Extension) estándar. El atributo trustManagerClass configurado determina las clases de las que el tiempo de ejecución crea una instancia, como se muestra en el siguiente ejemplo de código:<trustManagers xmi:id="TrustManager_1132357815718" name="CustomTrustManager"
trustManagerClass="com.ibm.ws.ssl.core.CustomTrustManager"
managementScope="ManagementScope_1132357815717"/>
El atributo
trustManagerClass debe implementar la interfaz
javax.net.ssl.X509TrustManager y, opcionalmente, puede implementar la
interfaz com.ibm.wsspi.ssl.TrustManagerExtendedInfo. Inhabilitación del gestor de confianza por omisión
En algunos casos, es posible que no desee realizar la verificación estándar de certificados que proporcionan los gestores de confianza por omisión IbmX509 e IbmPKIX. Por ejemplo, es posible que esté trabajando con una infraestructura de prueba automática interna que no se ocupe de la autenticación de servidor o cliente SSL, la integridad o la confidencialidad. El siguiente código de ejemplo muestra un gestor de confianza personalizado básico como, por ejemplo, com.ibm.ws.ssl.core.CustomTrustManager, cuya propiedad se establece en true.com.ibm.ssl.skipDefaultTrustManagerWhenCustomDefined=true
Puede establecer esta propiedad en las propiedades globales que aparecen
en la parte superior del archivo ssl.client.props para clientes o
en el archivo de propiedades personalizadas security.xml para
servidores.
Debe configurar un gestor de confianza personalizado al
inhabilitar el gestor de confianza predeterminado para evitar que el
servidor llame al gestor de confianza predeterminado aunque esté
configurado. La inhabilitación del gestor de confianza predeterminado no es
una práctica habitual. Asegúrese de probar el sistema con el gestor de
confianza predeterminado inhabilitado en un entorno de prueba primero. Para
obtener más información sobre cómo configurar un gestor de confianza
personalizado, consulte
Creación de una configuración de gestor de confianza personalizado para SSL