Resumo

Proteger os dados e o acesso aos dados dos aplicativos é uma etapa importante na proteção do seu ambiente para aplicativos clientes e proteção do banco de dados em ambientes de qualquer tamanho. Um dos métodos mais simples de proteger os dados é o caminho de acesso do aplicativo ao servidor de banco de dados. Alguns bancos de dados empregam esquemas fechados para proteger as comunicações do cliente para conexões de sessão com o banco de dados, mas o servidor Couchbase emprega certificados TLS para proteger as comunicações. Esse processo pode ser complexo para os não iniciados, mas a Let's Encrypt, uma nova autoridade de certificação gratuita, tem o objetivo de mudar isso e levar a tecnologia de segurança a todos.

Vamos criptografar

Começar a usar o Let's Encrypt (LE) requer um conhecimento mínimo de arquiteturas de certificados, mas requer um conhecimento prático de sistemas Unix ou Windows. O LE emprega uma abordagem automatizada para a criação e o gerenciamento de certificados por meio da especificação de protocolo IETF denominada "Automated Certificate Management Environment" (ACME). O ACME oferece um paradigma de segurança maior por meio da automação. Algumas das vantagens dessa abordagem são mostradas abaixo:

  • Criação, renovação e revogação automatizadas de certificados
  • Validação de nome de domínio/proprietário
  • Capacidade de certificados com assinatura cruzada
  • Baseado em ACME
  • Extensível

Para saber mais sobre a Let's Encrypt, visite sua página inicial em https://letsencrypt.org/ E se você quiser saber diretamente sobre a tecnologia, acesse este link https://letsencrypt.org/how-it-works/ tem mais detalhes.

Agora, vamos começar a criar certificados LE e usá-los com o Couchbase.

Proteção do Couchbase

 

Criar certificados com o LE para uso em qualquer aplicativo é fácil e, para o servidor Couchbase, é tão simples quanto emitir alguns comandos. Há pré-requisitos que devem ser compreendidos antes de começar. Eles são discutidos na documentação atual do Couchbase Server e no site do LE.

  • LetsEncrypt.com

https://letsencrypt.org/getting-started/

Criar certificados com o CertBot

Antes de criar e instalar certificados, você precisa obter a ferramenta automatizada LE chamada CertBot.

Pré-requisitos

Para instalar o CertBot, a ferramenta de certificado automatizada da Let's Encrypt, há duas maneiras.

  1. Do seu provedor de sistema operacional: Visite https://certbot.eff.org/ e escolha seu sistema operacional
  2. Por meio do GitHub: requer que você tenha o "git" instalado

Depois de instalar o CertBot, você estará pronto para começar a criar certificados.


Observação: Há algumas ressalvas, como a implantação na nuvem ou em um sistema que não esteja na borda. Preste atenção à sua conexão com o cliente ou com a Internet ao decidir as topologias de rede e de servidor com a Let's Encrypt.


As etapas a seguir foram usadas com instâncias no Amazon AWS para criar certificados para uso com o Couchbase Server. Suas etapas devem ser semelhantes, mas fornecemos essas etapas como exemplo.

 

1. Execute o certbot na linha de comando pela primeira vez com a opção "-h":

 

2. Inicie a caixa de diálogo de criação de certificado no Modo manual para criação orientada por prompt

 

3. Aceitar a licença

4. Reconheça como validar se o domínio é seu (servidor da Web ou servidor pythons autônomo incorporado)

5. forneça um nome de host DNS público válido

6. fornecer um endereço de e-mail válido

Figura: Exemplo de um nome de host válido

 valid_example_hostname

A captura de tela acima é das telas de configuração usadas durante a configuração da solicitação.

 

 

Se a criação do certificado for bem-sucedida, você verá uma mensagem como esta:

 

Para garantir que os certificados foram salvos corretamente, você pode listar o conteúdo do diretório da seguinte forma:

 

Configuração do nome alternativo do assunto do certificado (SAN)

É provável que o certificado seja endereçado por mais de um nome. É possível adicionar nomes adicionais a um certificado, também chamado de SAN (Subject Alternative Name). Um exemplo de criação de um certificado para vários domínios usando SAN é mostrado abaixo:

 

Quando estiver satisfeito com a criação e a preparação do certificado, é hora de adicionar certificados ao Couchbase Server.

 

Implantar certificados no Couchbase

Preparação

Depois que a criação do certificado for concluída com êxito, você deverá usar um conjunto de ferramentas de linha de comando para garantir que o Couchbase possa acessar os certificados. A descrição completa está no link da documentação do servidor Couchbase mostrado e um exemplo de configuração será fornecido nos parágrafos a seguir.

https://developer.couchbase.com/documentation/server/current/security/security-x509certsintro.html

Para que os certificados do LE sejam usados para criptografia, é necessário fornecer o certificado "CA root" do LE. O link a seguir fornece um diagrama e uma descrição da hierarquia sobre a CA.

https://letsencrypt.org/certificates/

 

O diagrama CA propriamente dito é mostrado aqui: https://letsencrypt.org/certs/isrg-keys.png

 

Importação de certificados

A importação de certificados para o servidor Couchbase deve ser feita em cada nó. Além disso, um diretório especial chamado "inbox" no diretório do servidor Couchbase é usado para armazenar os certificados. Tome cuidado especial ao executar os comandos como raiz para não danificar nada no diretório do servidor Couchbase. Certifique-se de que o proprietário e o grupo estejam definidos como "couchbase" para o diretório "inbox" e todos os arquivos dentro dele.

 


Esse procedimento deve ser concluído em cada nó. Cada nó também deve ter um nome de host endereçável por DNS ou usar um proxy reverso como o NGinX ou outro método. Para obter mais informações, acesse http://www.letsencrypt.com/documentation ou consulte os seguintes guias: https://github.com/certbot/certbot/wiki/Links


 

1. Faça o download do CA-Root Cert
a. Usando seu navegador, salve o texto mostrado aqui:
I. https://www.identrust.com/certificates/trustid/root-download-x3.html em um arquivo de texto simples, como: lets-encrypt-x3-rootCA.pem
b. Formate a chave dentro do arquivo como abaixo e salve como texto simples (não RTF ou qualquer outro formato)
I. --INICIAR CERTIFICADO--
--END CERTIFICATE--
2. Crie o diretório "Inbox" do Couchbase Server
a. mkdir /opt/couchbase/var/lib/couchbase/inbox
3. Altere as permissões de "root" para "couchbase"
a. chown couchbase:couchbase -R /opt/couchbase/var/lib/couchbase/inbox
4. Torne a "caixa de entrada" seu diretório de trabalho atual
a. cd /opt/couchbase/var/lib/couchbase/inbox
5. Copie os certificados criados com o Let's Encrypt para a caixa de entrada
a. cp /etc/letsencrypt/live/your.domain.com/cert1.pem .
b. cp /etc/letsencrypt/live/your.domain.com/pkey1.pem .
c. cp /etc/letsencrypt/live/your.domain.com/fullchain.pem chain.pem
6. Converta a chave privada em RSA
a. openssl rsa -in pkey.pem > pkey.key
7. Importar os diferentes certificados para o Couchbase Server
a. Importar o certificado ROOT-CA para o Couchbase
I. /opt/couchbase/bin/couchbase-cli ssl-manage -c localhost -upload-cluster-ca=lets-encrypt-x3-rootCA.pem -u -p
b. Importar a chave privada convertida em RSA no nó
I. /opt/couchbase/bin/couchbase-cli ssl-manage -c localhost -set-node-certificate -u -p

 

Teste da configuração

Para testar se a configuração está funcionando, abra um navegador da Web, como FireFox, I.E. ou Chrome versão 50.x, no URL do servidor via HTTPS, da seguinte forma:

https://myurl.com:18091/

 

Você verá uma imagem como a seguinte na barra de endereços, indicando que a interface do usuário agora está protegida.

 

 hopto_org

 

Essa é a mesma porta que você usa na camada do aplicativo para proteger as comunicações entre o aplicativo e o servidor.

 

Se precisar de ajuda adicional com os certificados x.509, consulte a documentação do Couchbase 4.5 aqui: http://developer.couchbase.com/documentation/server/4.5/admin/admin-intro.html

 

Você também pode enviar um e-mail para austin.gonyou@couchbase.com ou Don.Pinto@couchbase.com

Autor

Postado por Austin Gonyou, engenheiro de soluções, Couchbase

Austin Gonyou é engenheiro de soluções da Couchbase há 4 anos. Austin traz soluções técnicas sobre o servidor de banco de dados de documentos NoSQL Couchbase e conversas móveis facilitadas pela equipe de vendas interna, de nível médio e empresarial para nossos clientes potenciais e clientes.

Um comentário

  1. [...] Protegendo o Couchbase Server usando os certificados x.509 da Let's Encrypt - Austin Gonyou [...]

Deixar uma resposta