Alternar o certificado SSL/TLS - Amazon Aurora

Alternar o certificado SSL/TLS

Os certificados rds-ca-2019 de autoridade de certificação do Amazon RDS vão expirar em agosto de 2024. Se você usa ou planeja usar Secure Sockets Layer (SSL) ou Transport Layer Security (TLS) com verificação de certificado para se conectar às instâncias de banco de dados do RDS, pense na possibilidade de usar um dos novos certificados CA rds-ca-rsa2048-g1, rds-ca-rsa4096-g1 ou rds-ca-ecc384-g1. Se você não usa SSL/TLS com verificação de certificado no momento, é possível que ainda tenha algum certificado de CA expirado e precise atualizá-lo para um novo certificado de CA se planeja usar SSL/TLS com verificação de certificado para se conectar aos bancos de dados do RDS.

Siga estas instruções para concluir as atualizações. Antes de atualizar as instâncias de banco de dados para usarem o novo certificado CA, atualize os clientes ou as aplicações que se conectam aos bancos de dados do RDS.

‎‎O Amazon RDS fornece novos certificados CA como uma prática recomendada de segurança da AWS. Para obter informações sobre os novos certificados e as regiões da AWS compatíveis, consulte Como Usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados.

nota

O proxy do Amazon RDS e o Aurora Serverless v1 usam certificados do AWS Certificate Manager (ACM). Se estiver usando o RDS Proxy, ao trocar o certificado SSL/TLS, não será necessário atualizar as aplicações que usam conexões do RDS Proxy. Para obter mais informações, consulte Usar TLS/SSL com o RDS Proxy.

Se você estiver usando o Aurora Serverless v1, não será necessário baixar certificados do Amazon RDS. Para obter mais informações, consulte Usar TLS/SSL com o Aurora Serverless v1.

nota

Se estiver usando uma aplicação Go versão 1.15 com uma instância de banco de dados criada ou atualizada para o certificado rds-ca-2019 anterior a 28 de julho de 2020, você deverá atualizar o certificado novamente. Atualize o certificado para rds-ca-rsa2048-g1, rds-ca-rsa4096-g1 ou rds-ca-ecc384-g1, dependendo do mecanismo. Execute o comando modify-db-instance mostrado na seção da AWS CLI usando o novo identificador do certificado CA. Você pode encontrar as CAs que estão disponíveis para uma versão específica do mecanismo de banco de dados e do mecanismo de banco de dados usando o comando describe-db-engine-versions.

Caso você tenha criado sua instância de banco de dados ou atualizado seu certificado após 28 de julho de 2020, nenhuma ação será necessária. Para obter mais informações, consulte Go GitHub issue #39568.

Atualizar o certificado CA modificando sua instância de banco de dados

O exemplo a seguir atualiza o certificado de CA de rs-ca-2019 para rds-ca-rsa2048-g1. Você pode escolher um certificado diferente. Para obter mais informações, consulte Autoridades certificadoras.

Como atualizar o certificado CA modificando a instância de banco de dados
  1. Baixe o novo certificado SSL/TLS conforme descrito em Como Usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados.

  2. Atualize as aplicações para usarem o novo certificado SSL/TLS.

    Os métodos para atualizar aplicações para novos certificados SSL/TLS dependem de suas aplicações específicas. Trabalhe com os desenvolvedores de aplicações para atualizar os certificados SSL/TLS para suas aplicações.

    Para obter informações sobre como verificar conexões SSL/TLS e atualizar aplicações para cada mecanismo de banco de dados, consulte os seguintes tópicos:

    Para conhecer um script de exemplo que atualiza um armazenamento confiável para um sistema operacional Linux, consulte Script de exemplo para importar certificados para o seu armazenamento confiável.

    nota

    O pacote de certificados contém certificados tanto para a CA antiga como para a nova, portanto, é possível atualizar a aplicação de maneira segura e manter a conectividade durante o período de transição. Se você estiver usando o AWS Database Migration Service para migrar um banco de dados para de Banco de Dados cluster, recomendamos o uso do pacote de certificados para garantir a conectividade durante a migração.

  3. Modifique a instância de banco de dados para alterar a CA de rds-ca-2019 para rds-ca-rsa2048-g1. Para verificar se o banco de dados requer reinicialização para atualizar os certificados de CA, use o comando descrebe-db-engine-versions e verifique o sinalizador SupportsCertificateRotationWithoutRestart.

    nota

    Reinicialize o cluster do Babelfish depois de modificar para atualizar o certificado CA.

    Importante

    Se você estiver enfrentando problemas de conectividade após a expiração do certificado, especifique a opção Apply immediately (Aplicar imediatamente) no console ou a opção --apply-immediately usando a AWS CLI. Por padrão, essa operação é programada para ser executada durante a próxima janela de manutenção.

    Para definir uma substituição de CA do cluster que é diferente da CA padrão do RDS, use o comando modify-certificates da CLI.

É possível usar o AWS Management Console ou a AWS CLI para alterar o certificado de CA de rds-ca-2019 para rds-ca-rsa2048-g1 para uma instância de banco de dados.

  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados) e a instância de banco de dados que você deseja modificar.

  3. Selecione Modify.

    
                                        Modificar instâncias de banco de dados

    A página Modify DB Instance (Modificar instância de banco de dados) é exibida.

  4. Na seção Conectividade, escolha rds-ca-rsa2048-g1.

    
                                        Escolher certificado CA
  5. Escolha Continue (Continuar) e verifique o resumo de modificações.

  6. Para aplicar as alterações imediatamente, escolha Apply immediately.

  7. Na página de confirmação, revise suas alterações. Se estiverem corretas, escolha Modify DB Instance (Modificar instância de banco de dados) para salvar suas alterações.

    Importante

    Ao programar essa operação, certifique-se de ter atualizado o armazenamento de confiança do lado do cliente com antecedência.

    Ou escolha Back (Voltar) para editar as alterações ou Cancel (Cancelar) para cancelar as alterações.

Para utilizar a AWS CLI com o objetivo de alterar a CA de rds-ca-2019 para rds-ca-rsa2048-g1 em uma instância de banco de dados, chame o comando modify-db-instance. Especifique o identificador de instância de banco de dados e a opção --ca-certificate-identifier.

Importante

Ao programar essa operação, certifique-se de ter atualizado o armazenamento de confiança do lado do cliente com antecedência.

O código a seguir modifica mydbinstance configurando o certificado CA como rds-ca-rsa2048-g1.

Importante

Use --apply-immediately para aplicar a atualização imediatamente. Por padrão, essa operação é programada para ser executada durante a próxima janela de manutenção.

Para Linux, macOS ou Unix:

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

Para Windows:

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

Se a instância exigir reinicialização, você poderá usar o comando modify-db-instance da CLI e especificar a opção --no-certificate-rotation-restart.

Atualizar seu certificado CA aplicando manutenção de instância de banco de dados

Conclua as etapas a seguir para atualizar seu certificado CA aplicando a manutenção da instância de banco de dados.

Como atualizar o certificado CA aplicando a manutenção da instância de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados).

    No painel de navegação, há uma opção Atualização de certificado que mostra o número total de instâncias de banco de dados afetadas.

    
                                Opção do painel de navegação de rotação do certificado

    Escolha Certificate update (Atualização de certificado) no painel de navegação.

    A página Bancos de dados que precisam de atualização de certificado é exibida.

    
                                Atualizar o certificado CA da instância de banco de dados
    nota

    Essa página mostra apenas as instâncias de Bancos de Dados da região atual daAWS. Se você tiver uma instância de banco de dados em mais de uma região da AWS, confira essa página em cada região da AWS para ver todas as instâncias de banco de dados com certificados SSL/TLS antigos.

  3. Escolha a instância de banco de dados que você deseja atualizar.

    Você pode programar a alternância de certificado para sua próxima janela de manutenção escolhendo Programar. Aplique a mudança imediatamente escolhendo Aplicar agora.

    Importante

    Se você tiver problemas de conectividade após a expiração do certificado, use a opção Aplicar agora.

    1. Se você escolher Programar, precisará confirmar a alternância do certificado de CA. Essa solicitação de confirmação também indica a janela agendada para sua atualização.

      
                                        Confirmar rotação de certificado
    2. Se você escolher Aplicar agora, precisará confirmar a alternância do certificado de CA.

      
                                        Confirmar rotação de certificado
    Importante

    Antes de programar a rotação do certificado CA no banco de dados, atualize todas as aplicações cliente que usam SSL/TLS e o certificado do servidor para se conectar. Essas atualizações são específicas ao seu mecanismo de banco de dados. Depois de atualizar essas aplicações cliente, você pode confirmar a rotação do certificado CA.

    Para continuar, escolha a caixa de seleção e escolha Confirm (Confirmar).

  4. Repita as etapas 3 e 4 para cada instância de banco de dados que você deseja atualizar.

Alternância automática de certificados do servidor

Se a CA comportar a alternância automática de certificados de servidor, o RDS gerenciará automaticamente a alternância do certificado do servidor de banco de dados. Como o RDS usa a mesma CA raiz para essa alternância automática, então você não precisa baixar um novo pacote de CA. Consulte Autoridades certificadoras.

A alternância e a validade do certificado do servidor de banco de dados dependem do mecanismo de banco de dados:

  • Se o mecanismo de banco de dados comportar a alternância sem reinicialização, o RDS alternará automaticamente o certificado do servidor de banco de dados sem exigir nenhuma ação de sua parte. O RDS tenta alternar o certificado do servidor de banco de dados em sua janela de manutenção preferida na meia-vida do respectivo certificado. O novo certificado do servidor de banco de dados é válido por 12 meses.

  • Se o mecanismo de banco de dados não comportar a alternância sem reinicialização, o RDS notificará você sobre um evento de manutenção pelo menos seis meses antes da expiração do certificado do servidor de banco de dados. O novo certificado do servidor de banco de dados é válido por 12 meses.

Use o comando describe-db-engine-versions e inspecione o sinalizador SupportsCertificateRotationWithoutRestart para identificar se a versão do mecanismo de banco de dados é compatível com a alternância de certificado sem reinicialização. Para obter mais informações, consulte Configurar a CA do banco de dados.

Script de exemplo para importar certificados para o seu armazenamento confiável

Veja os exemplos de scripts do shell que importam o pacote de certificados para um armazenamento de confiança.

Cada script de shell de amostra usa o keytool, que faz parte do Java Development Kit (JDK). Para obter mais informações sobre como instalar o JDK, consulte o Guia de instalação do JDK.

Script de exemplo para importação de certificados no Linux

Veja a seguir um exemplo de script shell que importa o pacote de certificados para um armazenamento confiável em um sistema operacional 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 ".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 exemplo para importação de certificados no macOS

Veja a seguir um exemplo de script do shell que importa o pacote de certificados em um armazenamento de confiança no 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