Alternar o certificado SSL/TLS - Amazon Relational Database Service

Alternar o certificado SSL/TLS

Em de 5 de março de 2020, os certificados CA-2015 do Amazon RDS expiraram. Se usar ou planeja usar Secure Sockets Layer (SSL) ou Transport Layer Security (TLS) com verificação de certificado para se conectar às suas instâncias de banco de dados do RDS, você precisará de certificados CA-2019 do Amazon RDS, que são habilitados por padrão para novas instâncias de banco de dados. Se você não usa SSL/TLS com verificação de certificado no momento, é possível que ainda tenha certificados CA-2015 expirados e deverá atualizá-los para certificados CA-2019 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 os aplicativos 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 Usar o SSL/TLS para criptografar uma conexão com uma instância de banco de dados.

nota

O usa certificados do AWS Certificate Manager (ACM). Se estiver usando o RDS Proxy, quando você rotacionar o certificado SSL/TLS, não será necessário atualizar aplicativos que usam conexões RDS Proxy. Para obter mais informações sobre como usar o TLS/SSL com o RDS Proxy, consulte Usar TLS/SSL com o RDS Proxy.

nota

Se estiver usando um aplicativo 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ê deve atualizar o certificado novamente. Execute o comando modify-db-instance mostrado na seção da AWS CLI usando rds-ca-2019 como identificador do certificado CA. Nesse caso, não é possível atualizar o certificado usando o Console de gerenciamento da AWS. 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

Conclua as etapas a seguir para atualizar o certificado CA.

Como atualizar o certificado CA modificando a instância de banco de dados

  1. Baixe o novo certificado SSL/TLS conforme descrito em Usar o SSL/TLS para criptografar uma conexão com uma instância de banco de dados.

  2. Atualize os aplicativos para usarem o novo certificado SSL/TLS.

    Os métodos para atualizar aplicativos para novos certificados SSL/TLS dependem dos aplicativos específicos. Trabalhe com os desenvolvedores de aplicativos para atualizar os certificados SSL/TLS para seus aplicativos.

    Para obter informações sobre como verificar conexões SSL/TLS e atualizar aplicativos 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 o aplicativo 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 uma instância de banco de dados, 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-2015 para rds-ca-2019.

    Importante

    Por padrão, essa operação reinicia a instância de banco de dados. Se você não desejar reiniciar sua instância de banco de dados durante essa operação, poderá usar o comando modify-db-instance da CLI e especificar a opção --no-certificate-rotation-restart.

    Essa opção não alternará o certificado até a próxima vez que o banco de dados for reiniciado, seja para manutenção planejada ou não planejada. Essa opção só é recomendada se você não usar SSL/TLS.

    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.

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

Como alterar a CA de rds-ca-2015 para rds-ca-2019 para uma instância de banco de dados

  1. Faça login no Console de gerenciamento da AWS 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 Network & Security (Rede e segurança), selecione rds-ca-2019.

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

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

    Importante

    Escolher essa opção reinicia o banco de dados imediatamente.

  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 selecione Back (Voltar) para editar as alterações ou Cancel (Cancelar) para cancelar as alterações.

Para usar a AWS CLI a fim de alterar a CA de rds-ca-2015 para rds-ca-2019 para 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.

exemplo

O código a seguir modifica mydbinstance configurando o certificado CA como rds-ca-2019. As alterações serão aplicadas durante a janela de manutenção usando --no-apply-immediately. Use --apply-immediately para aplicar as alterações imediatamente.

Importante

Por padrão, essa operação reinicializa a instância de banco de dados. Se você não desejar reinicializar sua instância de banco de dados durante essa operação, poderá usar o comando modify-db-instance da CLI e especificar a opção --no-certificate-rotation-restart.

Essa opção não alternará o certificado até a próxima vez que o banco de dados for reiniciado, seja para manutenção planejada ou não planejada. Essa opção só é recomendada se você não usar SSL/TLS.

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-2019 \ --no-apply-immediately

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --ca-certificate-identifier rds-ca-2019 ^ --no-apply-immediately

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. Baixe o novo certificado SSL/TLS conforme descrito em Usar o SSL/TLS para criptografar uma conexão com uma instância de banco de dados.

  2. Atualize os aplicativos de banco de dados para usarem o novo certificado SSL/TLS.

    Os métodos para atualizar aplicativos para novos certificados SSL/TLS dependem dos aplicativos específicos. Trabalhe com os desenvolvedores de aplicativos para atualizar os certificados SSL/TLS para seus aplicativos.

    Para obter informações sobre como verificar conexões SSL/TLS e atualizar aplicativos 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 o aplicativo de maneira segura e manter a conectividade durante o período de transição.

  3. Aplique a manutenção da instância de banco de dados para alterar a CA de rds-ca-2015 para rds-ca-2019.

    Importante

    Você pode optar por aplicar a alteração imediatamente. Por padrão, essa operação é programada para ser executada durante a próxima janela de manutenção.

É possível usar o Console de gerenciamento da AWS para aplicar a manutenção da instância de banco de dados a fim de alterar o certificado CA de rds-ca-2015 para rds-ca-2019 de várias instâncias de banco de dados.

Atualizar seu certificado CA aplicando manutenção a várias instâncias de banco de dados

Use o Console de gerenciamento da AWS para alterar o certificado CA de várias instâncias de banco de dados.

Como alterar a CA de rds-ca-2015 para rds-ca-2019 para várias instâncias de banco de dados

  1. Faça login no Console de gerenciamento da AWS 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 Certificate update (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 Update your Amazon RDS SSL/TLS certificates (Atualizar seus certificados SSL/TLS do Amazon RDS) é exibida.

    
                                    Atualizar certificado CA de várias instâncias de banco de dados
    nota

    Essa página mostra apenas as instâncias de banco de dados da região atual da AWS. Se você tiver instâncias de banco de dados em mais de uma região da AWS, verifique 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 rotação do certificado para sua próxima janela de manutenção escolhendo Update at the next maintenance window (Atualizar na próxima janela de manutenção). Aplique a mudança imediatamente escolhendo Update now (Atualizar agora).

    Importante

    Quando seu certificado CA é alternado, a operação reinicia a instância de banco de dados.

    Se você tiver problemas de conectividade após a expiração do certificado, use a opção Update now (Atualizar agora).

  4. Se você escolher Update at the next maintenance window (Atualizar na próxima janela de manutenção) ou Update now (Atualizar agora), você será solicitado a confirmar a rotação de certificado CA.

    Importante

    Antes de programar a rotação do certificado CA no banco de dados, atualize todos os aplicativos cliente que usam SSL/TLS e o certificado do servidor para conectar-se. Essas atualizações são específicas ao seu mecanismo de banco de dados. Para determinar se os aplicativos usam SSL/TLS e o certificado do servidor para conectar-se, consulte Etapa 2: atualize os aplicativos de banco de dados para usarem o novo certificado SSL/TLS.. Depois de atualizar esses aplicativos cliente, você pode confirmar a rotação do certificado CA.

    
                                    Confirmar rotação de certificado

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

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

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.

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://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem" > ${mydir}/rds-combined-ca-bundle.pem awk 'split_after == 1 {n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1}{print > "rds-ca-" n ".pem"}' < ${mydir}/rds-combined-ca-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}/rds-combined-ca-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://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem" > ${mydir}/rds-combined-ca-bundle.pem split -p "-----BEGIN CERTIFICATE-----" ${mydir}/rds-combined-ca-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}/rds-combined-ca-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