Rotar certificados SSL/TLS - Amazon Aurora

Rotar certificados SSL/TLS

Los certificados rds-ca-2019 de la entidad de certificación de Amazon RDS caducarán en agosto de 2024. Si usa o planea usar la capa de sockets seguros (SSL) o la seguridad de la capa de transporte (TLS) con la verificación de certificados para conectarse a sus instancias de base de datos de RDS , considere la posibilidad de utilizar uno de los nuevos certificados de CA rds-ca-rsa2048-g1, rds-ca-rsa4096-g1 o rds-ca-ecc384-g1. Si actualmente no utiliza SSL/TLS con verificación de certificados, es posible que aún tenga un certificado de CA caducado y que deba actualizarlo con un certificado de CA nuevo si tiene previsto utilizar SSL/TLS con verificación de certificados para conectarse a sus bases de datos de RDS.

Amazon RDS proporciona nuevos certificados de entidad de certificación como una práctica recomendada de seguridad de AWS. Para obtener información sobre los nuevos certificados y las regiones de AWS compatibles, consulte Uso de SSL/TLS para cifrar una conexión a un clúster de base de datos.

Para actualizar el certificado de CA de la base de datos, utilice los métodos siguientes:

Antes de actualizar sus instancias de base de datos para usar el nuevo certificado de CA, asegúrese de actualizar sus clientes o aplicaciones que se conectan a sus bases de datos de RDS.

Consideraciones sobre la rotación de certificados

Tenga en cuenta las siguientes situaciones antes de rotar el certificado:

  • El proxy de Amazon RDS y Aurora Serverless v1 usan certificados de AWS Certificate Manager (ACM). Si utiliza RDS Proxy, al rotar el certificado SSL/TLS, no es necesario que actualice las aplicaciones que utilizan las conexiones de RDS Proxy. Para obtener más información, consulte Uso de TLS/SSL con RDS Proxy.

  • Si usa Aurora Serverless v1, no es necesario descargar certificados de Amazon RDS. Para obtener más información, consulte Uso de TLS/SSL con Aurora Serverless v1.

  • Si utiliza la versión 1.15 de una aplicación Go con una instancia de base de datos que se haya creado o actualizado con el certificado rds-ca-2019 antes del 28 de julio de 2020, debe actualizar el certificado de nuevo. Actualice el certificado a rds-ca-rsa2048-g1, rds-ca-rsa4096-g1 o rds-ca-ecc384-g1 dependiendo de su motor.

    Utilice el comando modify-db-instance con el nuevo identificador de certificado de CA. Puede buscar las CA que están disponibles para un motor de base de datos y una versión de motor de base de datos específicos mediante el comando describe-db-engine-versions.

    Si creó su base de datos o actualizó su certificado después del 28 de julio de 2020, no se requiere ninguna acción. Para obtener más información, consulte Go GitHub issue #39568.

Actualización del certificado de entidad de certificación modificando la instancia de base de datos

En el siguiente ejemplo, se actualiza el certificado de CA rds-ca-2019 a rds-ca-rsa2048-g1. Puede elegir un certificado diferente. Para obtener más información, consulte Entidades de certificación.

Actualice el almacén de confianza de aplicaciones para reducir el tiempo de inactividad asociado a la actualización del certificado de CA. Para obtener más información acerca de los reinicios asociados a la rotación de certificados, consulte Rotación automática de certificados del servidor.

Actualización del certificado de entidad de certificación modificando la instancia de base de datos
  1. Descargue el nuevo certificado SSL/TLS como se describe en Uso de SSL/TLS para cifrar una conexión a un clúster de base de datos.

  2. Actualice las aplicaciones para que usen el nuevo certificado SSL/TLS.

    Los métodos para actualizar aplicaciones para nuevos certificados SSL/TLS dependen de sus aplicaciones específicas. Trabaje con sus desarrolladores de aplicaciones para actualizar los certificados SSL/TLS para sus aplicaciones.

    Para obtener información sobre la comprobación de conexiones SSL/TLS y la actualización de cada motor de base de datos, consulte los siguientes temas:

    Para obtener el mismo script que actualice un almacén de confianza para un sistema operativo Linux, consulte Script de muestra para la importación de certificados en su almacén de confianza.

    nota

    El paquete de certificados contiene certificados tanto para la CA antigua como para la nueva, por lo que puede actualizar su aplicación de forma segura y mantener la conectividad durante el período de transición. Si utiliza AWS Database Migration Service para migrar una base de datos a un clúster de base de datos, se recomienda utilizar el paquete de certificados para garantizar la conectividad durante la migración.

  3. Modifique la instancia de base de datos para cambiar la CA de rds-ca-2019 a rds-ca-rsa2048-g1. Para comprobar si la base de datos requiere un reinicio para actualizar los certificados de CA, utilice el comando describe-db-engine-versions y compruebe el indicador SupportsCertificateRotationWithoutRestart.

    nota

    Reinicie su clúster de Babelfish después de modificarlo para actualizar el certificado de CA.

    importante

    Si tiene problemas de conectividad después de que el certificado caduque, utilice la opción de aplicación inmediata. Seleccione Apply immediately (Aplicar inmediatamente) en la consola o especifique la opción --apply-immediately con la AWS CLI. De manera predeterminada, esta operación está programada para ejecutarse durante su próximo periodo de mantenimiento.

    Para establecer una anulación para la CA de su clóster que sea diferente de su CA de RDS predeterminada, utilice el comando de la CLI modify-certificates.

Puede utilizar la AWS Management Console o la AWS CLI para cambiar el certificado de CA de rds-ca-2019 a rds-ca-rsa2048-g1 para una instancia de base de datos .

Console
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Bases de datos y, a continuación, elija la instancia de base de datos que desea modificar.

  3. Elija Modificar.

    Modifique la instancia de base de datos .
  4. En la sección Conectividad, elija rds-ca-rsa2048-g1.

    Elegir el certificado de CA
  5. Elija Continue y consulte el resumen de las modificaciones.

  6. Para aplicar los cambios inmediatamente, elija Apply immediately.

  7. En la página de confirmación, revise los cambios. Si son correctos, elija Modificar la instancia de base de datos para guardar los cambios.

    importante

    Cuando programe esta operación, asegúrese de haber actualizado de antemano su tienda de confianza del lado del cliente.

    O bien, elija Back (Atrás) para editar los cambios o Cancel (Cancelar) para cancelarlos.

AWS CLI

Para utilizar la AWS CLI para cambiar la CA de rds-ca-2019 a rds-ca-rsa2048-g1 para una instancia de base de datos , llame al comando modify-db-instance o modify-db-clúster. Especifique el identificador de instancia de base de datos y la opción --ca-certificate-identifier.

Utilice el parámetro --apply-immediately para aplicar la actualización inmediatamente. De manera predeterminada, esta operación está programada para ejecutarse durante su próximo periodo de mantenimiento.

importante

Cuando programe esta operación, asegúrese de haber actualizado de antemano su tienda de confianza del lado del cliente.

En el siguiente ejemplo, se modifica mydbinstance al establecer el certificado de CA en rds-ca-rsa2048-g1.

Para Linux, macOS o:Unix

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --ca-certificate-identifier rds-ca-rsa2048-g1

En:Windows

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --ca-certificate-identifier rds-ca-rsa2048-g1
nota

Si su instancia requiere reinicio, puede utilizar el comando de la CLI modify-db-instance y especificar la opción --no-certificate-rotation-restart.

Actualización del certificado de entidad de certificación mediante la aplicación de mantenimiento

Realice los siguientes pasos para actualizar el certificado de CA aplicando el mantenimiento.

Console
Actualización del certificado de CA aplicando el mantenimiento
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Actualización del certificado.

    Opción de panel de navegación de rotación de certificados

    Se muestra la página Bases de datos que requieren actualización de certificados.

    Actualización del certificado de CA para la base de datos
    nota

    Esta página solo muestra las instancias de base de datos de la Región de AWS actual. Si tiene instancias de base de datos en más de una Región de AWS, consulte esta página en cada Región de AWS para ver todas las instancias de base de datos con certificados SSL/TLS antiguos.

  3. Elija la instancia de base de datos que desea actualizar.

    Elija Programación para programar la rotación de certificados para la siguiente ventana de mantenimiento. Para aplicar la rotación inmediatamente, elija Aplicar ahora.

    importante

    Si tiene problemas de conectividad después de que el certificado caduque, utilice la opción Aplicar ahora.

    1. Si elige Programación, se le solicitará que confirme la rotación del certificado de CA. Este mensaje también indica el período programado para la actualización.

      Confirmar rotación del certificado
    2. Si elige Aplicar ahora, se le solicita que confirme la rotación del certificado de CA.

      Confirmar rotación del certificado
    importante

    Antes de programar la rotación de certificados de CA en la base de datos, actualice las aplicaciones cliente que utilicen SSL/TLS y el certificado de servidor para conectarse. Estas actualizaciones son específicas de su motor de base de datos. Después de actualizar estas aplicaciones cliente, puede confirmar la rotación del certificado de CA.

    Para continuar, seleccione la casilla de verificación y, a continuación, seleccione Confirm (Confirmar).

  4. Repita los pasos 3 y 4 para cada instancia de base de datos que desee actualizar.

Rotación automática de certificados del servidor

Si su CA raíz admite la rotación automática de certificados del servidor, RDS administra automáticamente la rotación del certificado del servidor de base de datos. RDS utiliza la misma CA raíz para esta rotación automática, por lo que no es necesario descargar un nuevo paquete de CA. Consulte Entidades de certificación.

La rotación y la validez del certificado del servidor de base de datos dependen del motor de base de datos:

  • Si su motor de base de datos admite la rotación sin reinicio, RDS rota automáticamente el certificado del servidor de base de datos sin que usted tenga que realizar ninguna acción. RDS intenta rotar el certificado del servidor de base de datos en el período de mantenimiento que prefiera a la mitad de la vida del certificado del servidor de base de datos. El nuevo certificado del servidor de base de datos es válido durante 12 meses.

  • Si su motor de base de datos no admite la rotación sin reinicio, RDS le notificará un evento de mantenimiento al menos 6 meses antes de que caduque el certificado del servidor de base de datos. El nuevo certificado del servidor de base de datos es válido durante 36 meses.

Utilice el comando describe-db-engine-versions e inspeccione el indicador SupportsCertificateRotationWithoutRestart para identificar si la versión del motor de base de datos admite la rotación del certificado sin reinicio. Para obtener más información, consulte Configuración de la CA para su base de datos.

Script de muestra para la importación de certificados en su almacén de confianza

A continuación se muestran scripts de shell de ejemplo que importan el paquete de certificados a un almacén de confianza.

Cada script de shell de muestra utiliza keytool, que forma parte del kit de desarrollo de Java (JDK). Para obtener información sobre la instalación de JDK, consulte la Guía de instalación de JDK.

Linux

A continuación se muestra un ejemplo de script de intérprete de comandos que importa el paquete de certificados a un almacén de confianza en un sistema operativo Linux.

mydir=tmp/certs if [ ! -e "${mydir}" ] then mkdir -p "${mydir}" fi truststore=${mydir}/rds-truststore.jks storepassword=changeit curl -sS "https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem" > ${mydir}/global-bundle.pem awk 'split_after == 1 {n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1}{print > "rds-ca-" n+1 ".pem"}' < ${mydir}/global-bundle.pem for CERT in rds-ca-*; do alias=$(openssl x509 -noout -text -in $CERT | perl -ne 'next unless /Subject:/; s/.*(CN=|CN = )//; print') echo "Importing $alias" keytool -import -file ${CERT} -alias "${alias}" -storepass ${storepassword} -keystore ${truststore} -noprompt rm $CERT done rm ${mydir}/global-bundle.pem echo "Trust store content is: " keytool -list -v -keystore "$truststore" -storepass ${storepassword} | grep Alias | cut -d " " -f3- | while read alias do expiry=`keytool -list -v -keystore "$truststore" -storepass ${storepassword} -alias "${alias}" | grep Valid | perl -ne 'if(/until: (.*?)\n/) { print "$1\n"; }'` echo " Certificate ${alias} expires in '$expiry'" done
macOS

A continuación se muestra un ejemplo de script de intérprete de comandos que importa el paquete de certificados a un almacén de confianza en macOS.

mydir=tmp/certs if [ ! -e "${mydir}" ] then mkdir -p "${mydir}" fi truststore=${mydir}/rds-truststore.jks storepassword=changeit curl -sS "https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem" > ${mydir}/global-bundle.pem split -p "-----BEGIN CERTIFICATE-----" ${mydir}/global-bundle.pem rds-ca- for CERT in rds-ca-*; do alias=$(openssl x509 -noout -text -in $CERT | perl -ne 'next unless /Subject:/; s/.*(CN=|CN = )//; print') echo "Importing $alias" keytool -import -file ${CERT} -alias "${alias}" -storepass ${storepassword} -keystore ${truststore} -noprompt rm $CERT done rm ${mydir}/global-bundle.pem echo "Trust store content is: " keytool -list -v -keystore "$truststore" -storepass ${storepassword} | grep Alias | cut -d " " -f3- | while read alias do expiry=`keytool -list -v -keystore "$truststore" -storepass ${storepassword} -alias "${alias}" | grep Valid | perl -ne 'if(/until: (.*?)\n/) { print "$1\n"; }'` echo " Certificate ${alias} expires in '$expiry'" done

Para obtener más información sobre los procedimientos recomendados al usar SSL con Amazon RDS, consulte Best practices for successful SSL connections to Amazon RDS para Oracle.