Como gerenciar certificados SSL/TLS

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

Como gerenciar certificados do cliente

Como 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. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Role para baixo até a seção 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.

Exclusão de 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. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Role para baixo até a seção 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:

Como gerenciar certificados do servidor

Como alternar os 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. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Role para baixo até a seção 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 seção 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:

Como 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. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Role para baixo até a seção 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:

Como 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. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Role para baixo até a seção 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.

Como conseguir 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. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Role para baixo até a seção 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:

Como 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. Clique no nome da instância para abrir a página Visão geral correspondente.
  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