Rotar certificados SSL/TLS - Amazon Relational Database Service

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 o clústeres de base de datos multi-AZ, 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.

Siga estas instrucciones para completar las actualizaciones. Antes de actualizar sus instancias de base de datos o clústeres de base de datos multi-AZ 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.

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 una instancia o clúster de base de datos.

nota

El proxy de Amazon RDS usa 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.

nota

Si utiliza la versión 1.15 de una aplicación Go con una instancia de base de datos o clúster de base de datos multi-AZ 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. Ejecute el comando modify-db-instance para una instancia de base de datos o el comando modify-db-cluster para un clúster de base de datos multi-AZ 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 o el clúster 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.

Actualización del certificado de entidad de certificación modificando la instancia o el clúster 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 una instancia o 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 una instancia o 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 o el clúster de base de datos multi-AZ 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.

    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 instancia 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 o un clúster de base de datos multi-AZ.

  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 o el clúster de base de datos multi-AZ que desea modificar.

  3. Elija Modificar.

    
                                            Modifique la instancia de base de datos o el clúster de bases de datos multi-AZ.
  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 o Modificar el clúster 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.

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 o un clúster de base de datos multi-AZ, llame al comando modify-db-instance o modify-db-cluster. Especifique el identificador de instancia o clúster 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.

instancia de base de datos

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.

Clúster de base de datos multi-AZ

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

Para Linux, macOS o Unix:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --ca-certificate-identifier rds-ca-rsa2048-g1

En Windows:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --ca-certificate-identifier rds-ca-rsa2048-g1

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.

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 y clústeres 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 o el clúster de base de datos multi-AZ 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 y clúster de base de datos que desee actualizar.

Rotación automática de certificados del servidor

Si su CA admite la rotación automática de certificados del servidor, RDS gestiona 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.

Script de ejemplo para la importación de certificados en Linux

A continuación se muestra un ejemplo de script de shell 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

Script de ejemplo para la importación de certificados en macOS

A continuación se muestra un ejemplo de script de shell 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