Configuración predeterminada de certificados encadenados en SSL
Cuando se inicia un proceso de WebSphere Application Server por primera vez, el tiempo de ejecución SSL (Secure Sockets Layer) inicializa los almacenes de claves y almacenes de confianza predeterminados que se especifican en la configuración SSL.
Los certificados encadenados creados durante la creación del perfil tienen de forma predeterminada una vida de un año. El certificado raíz predeterminado utilizado para firmante del certificado encadenado predeterminado tiene una duración de 15 años. El lapso de vida del certificado raíz y del predeterminado puede personalizarse durante la creación de perfiles. Una ventaja de este tipo de certificado encadenado es que sólo el firmante del certificado raíz es necesario para establecer la confianza. Cuando el certificado encadenado se regenera con el mismo certificado raíz, los clientes que utilizan dicho certificado de firmante raíz para la confianza no pierdan su confianza.
- Propiedades de almacenes de claves y almacenes de confianza por omisión
- WebSphere Application Server crea el archivo de almacén de claves predeterminado key.p12 y el archivo de almacén de confianza predeterminado trust.p12 durante la creación de perfiles. También se crea un certificado encadenado predeterminado en el archivo key.p12. El firmante raíz o la clave pública del certificado encadenado se extrae del archivo key.p12 y se añade al archivo trust.p12. Si los archivos no existen
durante el inicio de procesos, se vuelven a crear en el inicio.
Puede identificar los valores predeterminados de los almacenes de claves y almacenes de confianza a partir de los sufijos: DefaultKeyStore y DefaultTrustStore. Asimismo, en la configuración SSL, debe establecer el atributo fileBased en true de modo que el entorno de ejecución solo utilice los almacenes de claves y de confianza predeterminados.
En un servidor de aplicaciones base, los almacenes de claves y almacenes de confianza predeterminados se almacenan en el directorio de nodos del repositorio de configuración. Por ejemplo, los almacenes key.p12 y trust.p12 predeterminados se crean con el nombre de perfildefault
AppSrv01, el nombre myhostNode01Cell y el nombre de nodo myhostNode01. Los almacenes de claves y almacenes de confianza están ubicados en los siguientes directorios:
C:\WebSphere\AppServer\profiles\AppSrv01\config\cells\myhostNode01Cell \nodes\myhostNode01\key.p12
C:\WebSphere\AppServer\profiles\AppSrv01\config\cells\myhostNode01Cell \nodes\myhostNode01\trust.p12
${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell/nodes/myhostNode01/key.p12
${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell/nodes/myhostNode01/trust.p12
La contraseña predeterminada es WebAS para todos los almacenes de claves predeterminados generados por WebSphere Application Server. Cambie la contraseña predeterminada después de la configuración inicial para un entorno más seguro.
- Certificado encadenado predeterminado
- El certificado encadenado predeterminado del servidor junto con un certificado raíz autofirmado utilizado para firmar el certificado encadenado predeterminado se crean durante la creación del perfil. Propiedades de certificado raíz:
Información Valor type autofirmado tamaño 2048 algoritmo de firma SHA256withRSA SubjectDN cn=${hostname},ou=Root Certificate, ou=<node name>, ou= <cell name>,o=IBM,c=US lapso de vida 15 años Propiedades de certificados predeterminados:Información Valor type encadenado (firmado por el certificado raíz) tamaño 2048 algoritmo de firma SHA256withRSA SubjectDN cn=${hostname},ou=<node name>,ou=<cell name>,o=IBM,c=US lapso de vida 1 año Puede volver a crear los certificados con información distinta, sólo tiene que suprimir los archivos *.p12 de /config y /etc. Cambie las cuatro propiedades del ejemplo de código siguiente por los valores que quiere que contenga el certificado y reinicie los procesos. Esto provoca que difieran el certificado de servidor en /config y el certificado de cliente en /etc.
Las propiedades de certificados del ejemplo de código siguiente existen en el archivo ssl.client.props, pero no existen en la configuración de servidor. No obstante, puede utilizar estos valores en la configuración de servidor añadiéndolos como propiedades de seguridad personalizadas en la consola administrativa. Pulse Seguridad > Seguridad global > Propiedades personalizadas para cambiar las propiedades siguientes:com.ibm.ssl.defaultCertReqAlias=default_alias com.ibm.ssl.defaultCertReqSubjectDN=cn=${hostname},ou=myhostNode01,ou=myhostNode01Cell,o=IBM,c=US com.ibm.ssl.defaultCertReqDays=365 com.ibm.ssl.defaultCertReqKeySize=1024 com.ibm.ssl.rootCertSubjectDN=cn=${hostname},ou=Root Certificate, ou=myhostNode01, ou=myhostNode01Cell,o=IBM,c=US com.ibm.ssl.rootCertValidDays=7300 com.ibm.ssl.rootCertAlias=root com.ibm.ssl.rootCertKeySize=1024
Después de cambiar las propiedades, realice las acciones siguientes:- Suprima el archivo de almacén de claves key.p12 y el archivo de almacén de confianza trust.p12 para el gestor de despliegue, que contiene el certificado encadenado predeterminado. Si no existen ni el archivo del almacén de claves y el del almacén de confianza, WebSphere Application Server los genera automáticamente y crea los certificados predeterminados nuevos utilizando los valores de propiedad listados anteriormente.
- Suprima el almacén de claves raíz, que es el archivo root-key.p12, para volver a generar el certificado raíz con las propiedades listadas anteriormente.
- Reinicie el gestor de despliegue, su nodo y todos los servidores.
- Firme cada nodo con el
certificado raíz.
- Si los nodos no están federados, federe cada nodo en el gestor de despliegue utilizando el mandato addNode. El certificado por omisión del nodo se vuelve a generar utilizando el certificado raíz de la célula.
- Si los nodos están federados, renueve el certificado para cada nodo utilizando el certificado raíz de la célula. Puede renovar el certificado utilizando la consola administrativa o utilizando el mandato renewCertificate. Para obtener más información, consulte la documentación sobre la renovación de un certificado y el mandato renewCertificate.
Si ya existe un valor default_alias, el tiempo de ejecución anexa _#, donde el signo de número (#) es un número que se incrementa hasta que es exclusivo en el almacén de claves. ${hostname} es una variable que se resuelve en el nombre de host donde se ha creado originalmente. La fecha de caducidad por omisión de los certificados encadenados es de un año a partir de la fecha de creación.
El tiempo de ejecución supervisa las fechas de caducidad de los certificados encadenados mediante el supervisor de caducidad de certificados. Estos certificados encadenados se sustituyen automáticamente por cualquier certificado de firmante cuando están dentro del umbral de caducidad, que generalmente es de 30 días antes de la fecha de caducidad. Puede incrementar el tamaño de clave predeterminado por encima de los 1024 bits sólo cuando los archivos de políticas de entorno de ejecución de Java™ no tienen restricciones; es decir, no se exportan. Para obtener más información, consulte el apartado Supervisión de caducidad de certificados en SSL.
- Configuraciones de almacenes de claves y almacenes de confianza por omisión para procesos nuevos del servidor de aplicaciones base
- El siguiente código de ejemplo
muestra la configuración SSL por omisión para un servidor de aplicaciones
base. Las referencias a los almacenes de claves y almacenes de confianza
por omisión aparecen resaltadas.
<repertoire xmi:id="SSLConfig_1" alias="NodeDefaultSSLSettings" managementScope="ManagementScope_1"> <setting xmi:id="SecureSocketLayer_1" clientAuthentication="false" securityLevel="HIGH" enabledCiphers="" jsseProvider="IBMJSSE2" sslProtocol="SSL_TLS" keyStore="KeyStore_1" trustStore="KeyStore_2" trustManager="TrustManager_1" keyManager="KeyManager_1"/> </repertoire>
- Almacén de claves predeterminado
- En el siguiente código de ejemplo, el objeto de almacén de claves que
representa al almacén de claves por omisión es parecido al objeto XML.
<keyStores xmi:id="KeyStore_1" name="NodeDefaultKeyStore" password="{xor}349dkckdd=" provider="IBMJCE" location="${WAS_INSTALL_ROOT}/config /cells/myhostNode01Cell/nodes/myhostNode01/key.p12" type="PKCS12" fileBased="true" hostList="" initializeAtStartup="true" managementScope="ManagementScope_1"/>
El almacén de claves NodeDefaultKeyStore contiene el certificado personal que representa la identidad del punto final seguro. Cualquier referencia de almacén de claves puede utilizar la variable ${WAS_INSTALL_ROOT}, se amplía mediante el tiempo de ejecución. El tipo de almacén de claves predeterminado PKCS12 está en el formato más interoperativo, lo que quiere decir que puede importarse a la mayoría de los navegadores. La contraseña myhostNode01Cell está codificada. El ámbito de gestión determina qué tiempo de ejecución de servidor carga la configuración de almacén de claves en la memoria, como se muestra en el siguiente ejemplo de código:<managementScopes xmi:id="ManagementScope_1" scopeName=" (cell):myhostNode01Cell:(node):myhostNode01" scopeType="node"/>
Cualquier objeto de configuración almacenado en el archivo security.xml cuyos ámbitos de gestión estén fuera del ámbito del proceso actual no se cargan en el proceso actual. En su lugar, los servidores contenidos en el nodo myhostNode01 cargan el ámbito de gestión. Cualquier servidor de aplicaciones que esté en el nodo específico puede ver la configuración de almacén de claves.
Cuando se enumere el contenido del archivo key.p12 para mostrar el certificado encadenado, tenga en cuenta que el nombre común (CN) del nombre distinguido (DN) es el nombre de host de la máquina residente. Esta lista le permite verificar el nombre de host a partir de las conexiones de URL. Adicionalmente, puede verificar el nombre de host de un gestor de confianza personalizado. Para obtener más información, consulte Control del gestor de confianza de las decisiones de confianza sobre certificados X.509.
- Contenido de los almacenes de claves por omisión
- El siguiente
código de ejemplo muestra el contenido del archivo key.p12 predeterminado
en una lista de keytool:
keytool -list -v -keystore c:\WebSphere\AppServer\profile\AppSrv01\profiles\config \cells\myhostNode01Cell\nodes\myhostNode01\key.p12 -storetype PKCS12 -storepass *****
${raíz_perfil}\config\cells\${nombre_célula}\nodes\${nombre_nodo}> keytool -list -v -keystore ${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell /nodes/myhostNode01/key.p12 -storetype PKCS12 -storepass *****
Keystore type: PKCS12 Keystore provider: IBMJCE Your keystore contains 1 entry Alias name: default Creation date: Dec 31, 1969 Entry type: keyEntry Certificate chain length: 2 Certificate[1]: Owner: CN=myhost.austin.ibm.com, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Issuer: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Serial number: 4e48f29aafea6 Valid from: 2/7/08 1:03 PM until: 2/6/09 1:03 PM Certificate fingerprints: MD5: DB:FE:65:DB:40:13:F4:48:A4:CE:2F:4F:60:A5:FF:2C SHA1: A1:D4:DD:4B:DE:7B:45:F7:4D:AA:6A:FC:92:38:78:53:7A:99:F1:DC Certificate[2]: Owner: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Issuer: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Serial number: 4e48e5fd4eae3 Valid from: 2/7/08 1:03 PM until: 2/2/28 1:03 PM Certificate fingerprints: MD5: A5:9B:05:78:CF:AB:89:94:C9:2E:F1:87:34:B3:FC:75 SHA1: 43:74:B6:C7:FA:C1:0F:19:F2:51:2B:17:60:0D:34:93:55:BF:D5:D2 ******************************************* *******************************************
El nombre de alias por omisión y el tipo de entrada keyEntry indica que la clave privada se almacena con la clave pública, que representa un certificado personal completo. El certificado es propiedad de CN=myhost.austin.ibm.com, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US y lo emite el certificado raíz por omisión, que es propiedad de CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US. De manera predeterminada, el certificado es válido para un año a partir de la fecha de creación.
Adicionalmente, en algunas situaciones de intercambio de firmante, la huella dactilar del certificado garantiza que el certificado enviado no se haya modificado. El tiempo de ejecución de WebSphere Application Server muestra la huella dactilar, que es una salida de algoritmo hash del certificado, durante un intercambio de firmante automático en el extremo del cliente. La huella dactilar del cliente debe coincidir con la huella dactilar que aparece en el servidor. El tiempo de ejecución generalmente utiliza el algoritmo hash SHA1 para generar las huellas dactilares de certificados.
- Almacén de confianza por omisión
- En el siguiente código de ejemplo, el objeto de almacén de claves representa el almacén de confianza trust.p12 predeterminado. El
almacén de confianza contiene los certificados de firmante que son
necesarios para tomar decisiones de confianza:
<keyStores xmi:id="KeyStore_2" name="NodeDefaultTrustStore" password="{xor}349dkckdd=" provider="IBMJCE" location="${WAS_INSTALL_ROOT} /config/cells/myhostNode01Cell/nodes/myhostNode01/trust.p12" type="PKCS12" fileBased="true" hostList="" initializeAtStartup="true" managementScope="ManagementScope_1"/>
- Contenido de los almacenes de confianza por omisión
- El siguiente
código de ejemplo muestra el contenido del almacén de confianza trust.p12
predeterminado en una lista de keytool. De manera predeterminada, el firmante del certificado raíz del certificado encadenado de ejemplo se incluye en el almacén de confianza. El nombre de alias raíz y el tipo de entrada
trustedCertEntry indican que el certificado es la clave pública. La clave
privada no está almacenada en este almacén de confianza. Además, todos los almacenes de confianza contienen el certificado DataPower predeterminado.
keytool -list -v -keystore c:\WebSphere\AppServer\profile\AppSrv01\profiles\config\cells\myhostNode01Cell \nodes\myhostNode01\trust.p12 -storetype PKCS12 -storepass *****
${profile_root}\config\cells\${cellname}\nodes\${nodename}> keytool -list -v -keystore ${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell /nodes/myhostNode01/trust.p12 -storetype PKCS12 -storepass *****
Keystore type: PKCS12 Keystore provider: IBMJCE Your keystore contains 2 entries Alias name: root Creation date: Dec 31, 1969 Entry type: trustedCertEntry Owner: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Issuer: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US Serial number: 4e48e5fd4eae3 Valid from: 2/7/08 1:03 PM until: 2/2/28 1:03 PM Certificate fingerprints: MD5: A5:9B:05:78:CF:AB:89:94:C9:2E:F1:87:34:B3:FC:75 SHA1: 43:74:B6:C7:FA:C1:0F:19:F2:51:2B:17:60:0D:34:93:55:BF:D5:D2 ******************************************* ******************************************* Alias name: datapower Creation date: Dec 31, 1969 Entry type: trustedCertEntry Owner: OU=Root CA, O="DataPower Technology, Inc.", C=US Issuer: OU=Root CA, O="DataPower Technology, Inc.", C=US Serial number: 0 Valid from: 6/11/03 1:23 PM until: 6/6/23 1:23 PM Certificate fingerprints: MD5: 18:AC:86:D1:9A:90:A2:AE:8B:28:F9:A8:75:C8:A9:DB SHA1: A9:BA:A4:B5:BC:26:2F:5D:2A:80:93:CA:BA:F4:31:05:F2:54:14:17