Gerenciar certificados SSL/TLS

Nesta página, você verá como gerenciar os certificados do cliente e servidor.

Gerenciar certificados do cliente

Recuperar um certificado do cliente

É possível recuperar a parte da chave pública de um certificado do cliente. No entanto, não é possível recuperar a chave privada. Se você perdeu a chave privada, precisa criar um novo certificado.

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Abaixo de Gerenciar certificados do cliente, clique no nome de um certificado.
  6. A caixa de diálogo Certificado de cliente SSL é aberta e mostra o certificado do cliente (client-cert.pem) com um link para fazer o download do certificado.

gcloud

Recupere a chave pública do certificado do cliente com o comando ssl client-certs describe:

gcloud sql ssl client-certs describe CERT_NAME \
--instance=INSTANCE_NAME \
--format="value(cert)" > client-cert.pem

REST v1

  1. Liste os certificados na instância para receber a impressão digital do certificado que você quer recuperar:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

    Registre o campo sha1Fingerprint do certificado que você quer recuperar. Não inclua as aspas.

  2. Recupere o certificado:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • sha1FingerPrint: o sha1FingerPrint do certificado

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  3. Copie todos os dados de certificado entre aspas para um arquivo. Por exemplo, client-cert.pem. Não copie as aspas.

REST v1beta4

  1. Liste os certificados na instância para receber a impressão digital do certificado que você quer recuperar:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

    Registre o campo sha1Fingerprint do certificado que você quer recuperar. Não inclua as aspas.

  2. Recupere o certificado:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • sha1FingerPrint: o sha1FingerPrint do certificado

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  3. Copie todos os dados de certificado entre aspas para um arquivo. Por exemplo, client-cert.pem. Não copie as aspas.

Excluir um certificado do cliente

Quando você exclui um certificado do cliente, o servidor do banco de dados é atualizado e não precisa ser reiniciado.

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Abaixo de Gerenciar certificados do cliente, localize o certificado que você quer excluir e clique em Excluir..
  6. Na caixa de diálogo Excluir certificado do cliente, clique em Ok.

gcloud

Exclua o certificado do cliente usando o ssl client-certs delete:

gcloud sql ssl client-certs delete CERT_NAME \
--instance=INSTANCE_NAME

REST v1

  1. Liste os certificados na instância para receber a impressão digital do certificado a ser excluído:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

    Registre o campo sha1Fingerprint do certificado que você quer excluir. Não inclua as aspas.

  2. Exclua o certificado:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • sha1FingerPrint: o sha1FingerPrint do certificado

    Método HTTP e URL:

    DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

  1. Liste os certificados na instância para receber a impressão digital do certificado a ser excluído:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

    Registre o campo sha1Fingerprint do certificado que você quer excluir. Não inclua as aspas.

  2. Exclua o certificado:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • sha1FingerPrint: o sha1FingerPrint do certificado

    Método HTTP e URL:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

Gerenciar certificados do servidor

Alternar certificados do servidor

Se você tiver recebido um aviso sobre seus certificados que estão para expirar ou se tiver iniciado uma rotação, siga as etapas a seguir para concluí-la:

  1. Faça o download das informações do novo certificado do servidor.
  2. Atualize seus clientes para usarem as novas informações do certificado do servidor.
  3. Conclua a rotação. Ela move o certificado ativo atual para o slot "anterior" e atualiza o recém-adicionado para que seja o certificado ativo.

Console

Faça o download das informações do novo certificado do servidor:

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Clique para expandir a opção Gerenciar certificados.
  6. Selecione Rotação do certificado.

    A opção de rotação fica esmaecida quando não há certificados qualificados.

  7. Clique em Fazer o download dos certificados.

As informações do certificado do servidor, codificadas como um arquivo PEM, são transferidas por download ao ambiente local:

  • Atualize todos os clientes do PostgreSQL para usar as novas informações copiando o arquivo transferido para as máquinas host do cliente, substituindo o arquivo server-ca.pem atual.

Depois de atualizar os clientes, conclua a rotação:

  1. Volte para a guia Segurança.
  2. Clique para expandir a opção Gerenciar certificados.
  3. Selecione Rotação do certificado.
  4. Confirme se os clientes estão se conectando corretamente.
  5. Se algum cliente não conseguir se conectar usando o certificado recém-alternado, selecione Reverter certificado para reverter à configuração anterior.

gcloud

  1. Crie um certificado do servidor:
    gcloud beta sql ssl server-ca-certs create \
    --instance=INSTANCE
    
  2. Faça o download das informações do certificado para um arquivo PEM local:
    gcloud beta sql ssl server-ca-certs list \
    --format="value(cert)" \
    --instance=INSTANCE_NAME > \
    FILE_PATH/FILE_NAME.pem
    
  3. Atualize todos os clientes para usar as novas informações. Basta copiar o arquivo transferido por download para as máquinas host do cliente, substituindo os arquivos "server-ca.pem" atuais.
  4. Depois de atualizar os clientes, conclua a rotação:
    gcloud beta sql ssl server-ca-certs rotate \
    --instance=INSTANCE_NAME
          
  5. Confirme se os clientes estão se conectando corretamente.

    Se algum cliente não estiver se conectando com o certificado recém-alternado, será possível reverter à configuração anterior.

REST v1

  1. Faça o download de seus certificados do servidor:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Complete a rotação:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

  1. Faça o download de seus certificados do servidor:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Complete a rotação:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

Reverter uma operação de rotação de certificado

Depois da conclusão da rotação, é necessário que todos os seus clientes usem o novo certificado para se conectar à sua instância do Cloud SQL. Se os clientes não forem atualizados de maneira correta para usar as novas informações de certificado, eles não poderão se conectar à sua instância usando SSL/TLS. Se isso acontecer, você poderá fazer rollback para a configuração anterior.

Uma operação de rollback move o certificado ativo no momento para o "próximo" slot, substituindo qualquer certificado marcado como "próximo". O certificado "anterior" se torna o ativo, retornando sua configuração ao estado em que estava antes de você concluir a rotação.

Para fazer rollback para a configuração do certificado anterior:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Clique para expandir a opção Gerenciar certificados.
  6. Selecione Reverter certificado.

    A opção de rotação fica esmaecida quando não há certificados qualificados. Caso contrário, a ação de reversão será concluída após alguns segundos.

gcloud

gcloud beta sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
   

REST v1

  1. Faça o download de seus certificados do servidor:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Copie o campo sha1Fingerprint da versão que você quer reverter.

    Procure a versão com um valor createTime imediatamente anterior à versão com sha1Fingerprint mostrado como activeVersion.

  3. Reverta a rotação:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    Corpo JSON da solicitação:

    {
      "rotateServerCaContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

  1. Faça o download de seus certificados do servidor:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Copie o campo sha1Fingerprint da versão que você quer reverter.

    Procure a versão com um valor createTime imediatamente anterior à versão com sha1Fingerprint mostrado como activeVersion.

  3. Reverta a rotação:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Corpo JSON da solicitação:

    {
      "rotateServerCaContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

Iniciar uma rotação

Você não precisa esperar o e-mail do Cloud SQL para iniciar uma rotação. Você pode fazer isso a qualquer momento. Ao iniciar uma rotação, um novo certificado é criado e colocado no "próximo" slot. Caso esse certificado já esteja no "próximo" slot, ele será excluído. Pode haver somente um "próximo" certificado.

Para iniciar uma rotação:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.
  5. Clique em Criar novo certificado.
  6. Clique para expandir a opção Gerenciar certificados.
  7. Selecione Rotação do certificado.

    A opção de rotação fica esmaecida quando não há certificados qualificados.

  8. Conclua a alternância conforme descrito em Como alternar os certificados do servidor.

gcloud

  1. Inicie a rotação:
    gcloud beta sql ssl server-ca-certs create \
    --instance=INSTANCE_NAME
         
  2. Conclua a alternância conforme descrito em Como alternar os certificados do servidor.

REST v1

  1. Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Conclua a alternância conforme descrito em Como alternar os certificados do servidor.

REST v1beta4

  1. Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Conclua a alternância conforme descrito em Como alternar os certificados do servidor.

Receber informações sobre um certificado do servidor

Você pode receber informações sobre o certificado do servidor, como a data de validade ou o nível de criptografia que ele oferece.

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Selecione a guia Segurança.

    Abaixo de Gerenciar certificados do servidor, é possível ver a data de validade do certificado do servidor na tabela.

    Para ver o tipo de certificado, use o comando gcloud beta sql ssl server-ca-certs list --instance=INSTANCE_NAME.

gcloud

gcloud beta sql ssl server-ca-certs list \
--instance=INSTANCE_NAME

REST v1

Você pode ver detalhes do certificado de servidor ao descrever a instância:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=serverCaCert

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Você pode ver detalhes do certificado de servidor ao descrever a instância:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=serverCaCert

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Redefinir a configuração SSL/TLS

É possível redefinir completamente a configuração SSL/TLS.

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Role para baixo até a seção Redefinir configuração SSL.
  5. Clique em Redefinir configuração SSL.

gcloud

  1. Atualize o certificado:

    gcloud sql instances reset-ssl-config INSTANCE_NAME
    
  2. Crie novos certificados do cliente.

REST v1beta4

  1. Atualize o certificado:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/resetSslConfig

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Crie novos certificados do cliente.

A seguir