Como Configurar uma Autoridade Certificadora (AC) No Ubuntu 20.04
Introdução
A Autoridade Certificadora (AC) é uma entidade responsável pela emissão de certificados digitais para verificar identidades na Internet. Embora as AC públicas sejam uma escolha popular para verificar a identidade de websites e outros serviços que são fornecidos ao público em geral, as AC privadas são tipicamente utilizadas para grupos fechados e serviços privados.
Construir uma Autoridade Certificadora privada permitirá configurar, testar e executar programas que requerem conexões criptografadas entre um cliente e um servidor. Com uma CA privada, você pode emitir certificados para usuários, servidores ou programas e serviços individuais dentro de sua infra-estrutura.
Alguns exemplos de programas em Linux que usam sua própria CA privada são OpenVPN e Puppet . Você também pode configurar seu servidor web para usar certificados emitidos por uma CA privada, a fim de fazer com que os ambientes de desenvolvimento e de preparação correspondam aos servidores de produção que usam TLS para criptografar conexões.
Neste guia, aprenderemos como configurar uma Autoridade Certificadora privada em um servidor Ubuntu 20.04, e como gerar e assinar um certificado de teste usando sua nova CA. Você também aprenderá como importar o certificado público do servidor da CA para a loja de certificados do seu sistema operacional, para que você possa verificar a cadeia de confiança entre a CA e os servidores ou usuários remotos. Finalmente você aprenderá como revogar certificados e distribuir uma Lista de Revogação de Certificados para garantir que somente usuários e sistemas autorizados possam usar serviços que dependem da sua CA.
Prerequisites
Para completar este tutorial, você precisará acessar um servidor Ubuntu 20.04 para hospedar o seu servidor da CA. Você precisará configurar um usuário não-root com privilégios de sudo
antes de iniciar este guia. Você pode seguir nosso guia de configuração inicial do servidor Ubuntu 20.04 para configurar um usuário com as permissões apropriadas. O tutorial vinculado também configurará um firewall, que se assume estar em vigor em todo este guia.
Este servidor será referido como Servidor CA neste tutorial.
Certifique-se de que o Servidor CA é um sistema autônomo. Ele só será usado para importar, assinar e revogar pedidos de certificado. Ele não deve executar quaisquer outros serviços e, idealmente, estará offline ou completamente desligado quando você não estiver trabalhando ativamente com sua CA.
Note: A última seção deste tutorial é opcional se você gostaria de aprender sobre assinatura e revogação de certificados. Se você escolher completar esses passos de prática, você precisará de um segundo servidor Ubuntu 20.04 ou você também pode usar seu próprio computador Linux local rodando Ubuntu ou Debian, ou distribuições derivadas de qualquer um desses.
Passo 1 – Instalando o Easy-RSA
A primeira tarefa neste tutorial é instalar o conjunto de scripts easy-rsa
no seu servidor CA. easy-rsa
é uma ferramenta de gerenciamento de autoridade de certificado que você usará para gerar uma chave privada e um certificado root público, que você então usará para assinar pedidos de clientes e servidores que dependerão da sua CA.
Entrar no seu Servidor CA como o usuário não-root sudo que você criou durante os passos iniciais de configuração e executar o seguinte:
- sudo apt update
- sudo apt install easy-rsa
Você será solicitado a baixar o pacote e instalá-lo. Pressione y
para confirmar que você deseja instalar o pacote.
Neste ponto você tem tudo que você precisa configurar e pronto para usar o Easy-RSA. No próximo passo você irá criar uma Infra-Estrutura de Chave Pública, e então começar a construir sua Autoridade Certificadora.
Passo 2 – Preparando um Diretório de Infra-Estrutura de Chave Pública
Agora que você tenha instalado easy-rsa
, é hora de criar um esqueleto de Infra-Estrutura de Chave Pública (PKI) no Servidor CA. Certifique-se de que você ainda está logado como seu usuário não-root e crie um diretório easy-rsa
. Certifique-se de que você não usa sudo para executar qualquer um dos seguintes comandos, já que seu usuário normal deve gerenciar e interagir com a CA sem privilégios elevados.
- mkdir ~/easy-rsa
Isto irá criar um novo diretório chamado easy-rsa
em sua pasta home. Vamos usar este diretório para criar links simbólicos apontando para os arquivos de pacotes easy-rsa
que instalamos no passo anterior. Estes ficheiros estão localizados na pasta /usr/share/easy-rsa
no servidor CA.
Criar os links simbólicos com o comando ln
comando:
- ln -s /usr/share/easy-rsa/* ~/easy-rsa/
Note: Enquanto outros guias podem instruí-lo a copiar os ficheiros de pacotes easy-rsa
para o seu directório PKI, este tutorial adopta uma abordagem symlink. Como resultado, quaisquer atualizações para o pacote easy-rsa
serão automaticamente refletidas nos scripts da sua PKI.
Para restringir o acesso ao seu novo diretório PKI, assegure-se de que somente o proprietário possa acessá-lo usando o comando chmod
:
- chmod 700 /home/sammy/easy-rsa
Finalmente, inicialize o PKI dentro do diretório easy-rsa
:
- cd ~/easy-rsa
- ./easyrsa init-pki
Outputinit-pki complete; you may now create a CA or requests.Your newly created PKI dir is: /home/sammy/easy-rsa/pki
Após completar esta seção você tem um diretório que contém todos os arquivos necessários para criar uma Autoridade Certificadora. Na próxima secção irá criar a chave privada e o certificado público para a sua CA.
Passo 3 – Criar uma Autoridade de Certificado
Antes de poder criar a chave privada e o certificado da sua CA, necessita de criar e preencher um ficheiro chamado vars
com alguns valores por defeito. Primeiro você irá cd
no diretório easy-rsa
, então você irá criar e editar o arquivo vars
com nano
ou seu editor de texto preferido:
- cd ~/easy-rsa
- nano vars
Após o arquivo ser aberto, cole nas seguintes linhas e edite cada valor destacado para refletir as informações de sua própria organização. A parte importante aqui é garantir que não deixa nenhum dos valores em branco:
~/easy-rsa/varsset_var EASYRSA_REQ_COUNTRY "US"set_var EASYRSA_REQ_PROVINCE "NewYork"set_var EASYRSA_REQ_CITY "New York City"set_var EASYRSA_REQ_ORG "DigitalOcean"set_var EASYRSA_REQ_EMAIL "[email protected]"set_var EASYRSA_REQ_OU "Community"set_var EASYRSA_ALGO "ec"set_var EASYRSA_DIGEST "sha512"
Quando terminar, guarde e feche o ficheiro. Se você estiver usando nano
, você pode fazê-lo pressionando CTRL+X
, depois Y
e ENTER
para confirmar. Está agora pronto para construir o seu CA.
Para criar o par de chaves públicas e privadas raiz para a sua Autoridade Certificadora, execute novamente o comando ./easy-rsa
, desta vez com a opção build-ca
:
- ./easyrsa build-ca
Na saída, verá algumas linhas acerca da versão OpenSSL e ser-lhe-á pedido para introduzir uma frase-chave para o seu par de chaves. Certifique-se de escolher uma frase-chave forte, e anote-a em algum lugar seguro. Você precisará digitar a senha sempre que precisar interagir com a sua CA, por exemplo para assinar ou revogar um certificado.
Você também será solicitado a confirmar o Nome Comum (CN) para a sua CA. O CN é o nome usado para se referir a esta máquina no contexto da Autoridade Certificadora. Você pode inserir qualquer seqüência de caracteres para o Nome Comum da AC mas, para simplificar, pressione ENTER para aceitar o nome padrão.
Output. . .Enter New CA Key Passphrase:Re-Enter New CA Key Passphrase:. . .Common Name (eg: your user, host, or server name) :CA creation complete and you may now import and sign cert requests.Your new CA certificate file for publishing is at:/home/sammy/easy-rsa/pki/ca.crt
Note: Se não quiser que lhe seja pedida uma palavra-passe sempre que interagir com a sua AC, pode executar o comando build-ca
com a opção nopass
, assim:
- ./easyrsa build-ca nopass
Tem agora dois ficheiros importantes – ~/easy-rsa/pki/ca.crt
e ~/easy-rsa/pki/private/ca.key
– que constituem os componentes públicos e privados de uma Autoridade Certificadora.
-
ca.crt
é o arquivo de certificado público da CA. Utilizadores, servidores e clientes irão utilizar este certificado para verificar se fazem parte da mesma rede de confiança. Todo usuário e servidor que utilizar sua CA precisará ter uma cópia deste arquivo. Todas as partes confiarão no certificado público para garantir que alguém não está se fazendo passar por um sistema e executando um ataque Man-in-the-middle. -
ca.key
é a chave privada que a CA usa para assinar certificados para servidores e clientes. Se um atacante ganhar acesso à sua CA e, por sua vez, ao seu arquivoca.key
, você precisará destruir a sua CA. É por isso que o seu ficheiroca.key
deve estar apenas na sua máquina CA e que, idealmente, a sua máquina CA deve ser mantida offline quando não assinar pedidos de certificados como uma medida de segurança extra.
Com isso, a sua CA está no lugar e está pronta para ser usada para assinar pedidos de certificados, e para revogar certificados.
Passo 4 – Distribuindo o Certificado Público da sua Autoridade Certificadora
Agora a sua AC está configurada e pronta para agir como raiz de confiança para qualquer sistema que você queira configurar para usá-la. Você pode adicionar o certificado da CA aos seus servidores OpenVPN, servidores web, servidores de e-mail, e assim por diante. Qualquer usuário ou servidor que precise verificar a identidade de outro usuário ou servidor na sua rede deve ter uma cópia do arquivo ca.crt
importado para a loja de certificados do seu sistema operacional.
Para importar o certificado público da CA para um segundo sistema Linux como outro servidor ou um computador local, primeiro obtenha uma cópia do arquivo ca.crt
do seu servidor da CA. Você pode usar o comando cat
para sair em um terminal, e depois copiar e colar em um arquivo no segundo computador que está importando o certificado. Você também pode usar ferramentas como scp
, rsync
para transferir o arquivo entre sistemas. No entanto iremos utilizar o comando copiar e colar com nano
neste passo já que funcionará em todos os sistemas.
Como seu usuário não-root no servidor CA, execute o seguinte comando:
- cat ~/easy-rsa/pki/ca.crt
Existirá uma saída no seu terminal que é similar ao seguinte:
Output-----BEGIN CERTIFICATE-----MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQELBQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw. . .. . .-----END CERTIFICATE-----
Copiar tudo, incluindo as linhas -----BEGIN CERTIFICATE-----
e -----END CERTIFICATE-----
e os traços.
No seu segundo sistema Linux utilize nano
ou o seu editor de texto preferido para abrir um ficheiro chamado /tmp/ca.crt
:
- nano /tmp/ca.crt
Colar o conteúdo que acabou de copiar do Servidor CA para o editor. Quando terminar, salve e feche o arquivo. Se você estiver usando nano
, você pode fazê-lo pressionando CTRL+X
, depois Y
e ENTER
para confirmar.
Agora que você tenha uma cópia do arquivo ca.crt
no seu segundo sistema Linux, é hora de importar o certificado para a sua loja de certificados do sistema operacional.
No Ubuntu e em sistemas baseados em Debian, execute os seguintes comandos como seu usuário não-root para importar o certificado:
- sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
- sudo update-ca-certificates
Para importar o certificado do servidor CA no CentOS, Fedora, ou sistema baseado em RedHat, copie e cole o conteúdo do arquivo no sistema como no exemplo anterior em um arquivo chamado /tmp/ca.crt
. Em seguida, você copiará o certificado em /etc/pki/ca-trust/source/anchors/
, então execute o comando update-ca-trust
.
- sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
- sudo update-ca-trust
Agora seu segundo sistema Linux confiará em qualquer certificado que tenha sido assinado pelo servidor CA.
Nota: Se você estiver usando sua CA com servidores web e usar o Firefox como um navegador você precisará importar o certificado público ca.crt
para o Firefox diretamente. O Firefox não utiliza a loja de certificados do sistema operacional local. Para detalhes sobre como adicionar o certificado da sua CA ao Firefox por favor veja este artigo de suporte da Mozilla sobre a configuração de Autoridades Certificadoras (CA) no Firefox.
Se estiver a usar a sua CA para integrar com um ambiente Windows ou computadores desktop, por favor veja a documentação sobre como usar certutil.exe
para instalar um certificado da CA.
Se estiver a usar este tutorial como pré-requisito para outro tutorial, ou se estiver familiarizado com a forma de assinar e revogar certificados pode parar aqui. Se você gostaria de aprender mais sobre como assinar e revogar certificados, então a seguinte seção opcional explicará cada processo em detalhes.
(Opcional) – Criando Pedidos de Assinatura de Certificado e Revogando Certificados
As seguintes seções do tutorial são opcionais. Se você completou todos os passos anteriores, então você tem uma Autoridade Certificadora totalmente configurada e funcional que você pode usar como pré-requisito para outros tutoriais. Você pode importar o arquivo ca.crt
da sua CA e verificar certificados em sua rede que foram assinados pela sua CA.
Se você gostaria de praticar e aprender mais sobre como assinar pedidos de certificados, e como revogar certificados, então estas seções opcionais explicarão como ambos os processos funcionam.
(Opcional) – Criando e assinando uma Solicitação de Certificado de Prática
Agora que você tenha uma CA pronta para usar, você pode praticar a geração de uma chave privada e solicitação de certificado para se familiarizar com o processo de assinatura e distribuição.
Uma Solicitação de Assinatura de Certificado (CSR) consiste em três partes: uma chave pública, identificando informações sobre o sistema solicitante, e uma assinatura da própria solicitação, que é criada usando a chave privada da parte solicitante. A chave privada será mantida em segredo, e será usada para encriptar informação que qualquer pessoa com o certificado público assinado pode então desencriptar.
Os passos seguintes serão executados no seu segundo Ubuntu ou sistema Debian, ou distribuição que é derivada de qualquer uma destas. Pode ser outro servidor remoto, ou uma máquina Linux local como um laptop ou um computador desktop. Como easy-rsa
não está disponível por padrão em todos os sistemas, usaremos a ferramenta openssl
para criar uma chave privada e certificado.
openssl
é normalmente instalado por padrão na maioria das distribuições Linux, mas apenas para ter certeza, execute o seguinte no seu sistema:
- sudo apt update
- sudo apt install openssl
Quando for solicitado a instalar openssl
insira y
para continuar com os passos de instalação. Agora você está pronto para criar um CSR prático com openssl
.
O primeiro passo que você precisa completar para criar um CSR é gerar uma chave privada. Para criar uma chave privada usando openssl
, crie um diretório com practice-csr
e depois gere uma chave dentro dele. Vamos fazer este pedido para um servidor fictício chamado sammy-server
, em vez de criar um certificado que é utilizado para identificar um utilizador ou outro CA.
- mkdir ~/practice-csr
- cd ~/practice-csr
- openssl genrsa -out sammy-server.key
OutputGenerating RSA private key, 2048 bit long modulus (2 primes). . .. . .e is 65537 (0x010001)
Agora que tenha uma chave privada pode criar um CSR correspondente, novamente utilizando o utilitário openssl
. Você será solicitado a preencher um número de campos como País, Estado e Cidade. Você pode inserir um .
se você quiser deixar um campo em branco, mas esteja ciente que se este for um CSR real, é melhor usar os valores corretos para sua localização e organização:
- openssl req -new -key sammy-server.key -out sammy-server.req
Output. . .-----Country Name (2 letter code) :USState or Province Name (full name) :New YorkLocality Name (eg, city) :New York CityOrganization Name (eg, company) :DigitalOceanOrganizational Unit Name (eg, section) :CommunityCommon Name (eg, your name or your server's hostname) :sammy-serverEmail Address :Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password :An optional company name :
Se você quiser adicionar automaticamente esses valores como parte da invocação openssl
em vez de através do prompt interativo, você pode passar o argumento -subj
para OpenSSL. Certifique-se de editar os valores destacados para corresponder à sua localização de prática, organização e nome do servidor:
- openssl req -new -key sammy-server.key -out server.req -subj \
- /C=US/ST=New\ York/L=New\ York\ City/O=DigitalOcean/OU=Community/CN=sammy-server
Para verificar o conteúdo de um CSR, você pode ler em um arquivo de requisição com openssl
e examinar os campos dentro:
- openssl req -in sammy-server.req -noout -subject
Outputsubject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server
Após estar satisfeito com o assunto da sua solicitação de certificado de prática, copie o arquivo sammy-server.req
para o seu servidor CA usando scp
:
- scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req
Neste passo, você gerou uma Solicitação de Assinatura de Certificado para um servidor fictício chamado sammy-server
. Em um cenário real, a requisição pode ser de algo como um servidor web de encenação ou desenvolvimento que precisa de um certificado TLS para testes; ou pode vir de um servidor OpenVPN que está requisitando um certificado para que os usuários possam se conectar a uma VPN. No próximo passo, vamos proceder à assinatura do pedido de assinatura do certificado usando a chave privada do servidor CA.
(Opcional) – Assinando um CSR
No passo anterior, você criou um pedido de certificado prático e uma chave para um servidor fictício. Você copiou-o para o diretório /tmp
no seu servidor CA, emulando o processo que você usaria se você tivesse clientes ou servidores reais enviando-lhe pedidos de CSR que precisam ser assinados.
Continuando com o cenário fictício, agora o servidor CA precisa importar o certificado de prática e assiná-lo. Assim que um pedido de certificado for validado pela CA e reenviado de volta para um servidor, clientes que confiam na Autoridade Certificadora também poderão confiar no certificado recém emitido.
Desde que estaremos operando dentro da PKI da CA onde o utilitário easy-rsa
está disponível, os passos de assinatura usarão o utilitário easy-rsa
para facilitar as coisas, ao invés de usar o openssl
diretamente como fizemos no exemplo anterior.
O primeiro passo para assinar o CSR fictício é importar o pedido de certificado usando o script easy-rsa
>
- cd ~/easy-rsa
- ./easyrsa import-req /tmp/sammy-server.req sammy-server
Output. . .The request has been successfully imported with a short name of: sammy-serverYou may now use this name to perform signing operations on this request.
Agora você pode assinar o pedido executando o script easyrsa
com a opção sign-req
, seguido pelo tipo de pedido e o Nome Comum que está incluído no CSR. O tipo de requisição pode ser um de client
, server
, ou ca
. Como estamos praticando com um certificado para um servidor fictício, certifique-se de usar o tipo de requisição server
:
- ./easyrsa sign-req server sammy-server
Na saída, você será solicitado a verificar se a requisição vem de uma fonte confiável. Digite yes
e pressione ENTER
para confirmar isso:
OutputYou are about to sign the following certificate.Please check over the details shown below for accuracy. Note that this requesthas not been cryptographically verified. Please be sure it came from a trustedsource or that you have verified the request checksum with the sender.Request subject, to be signed as a server certificate for 3650 days:subject= commonName = sammy-serverType the word 'yes' to continue, or any other input to abort. Confirm request details: yes. . .Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt
Se você criptografou sua chave CA, você será solicitado a obter sua senha neste ponto.
Com esses passos concluídos, você assinou o sammy-server.req
CSR usando a chave privada do Servidor CA em /home/sammy/easy-rsa/pki/private/ca.key
. O ficheiro resultante sammy-server.crt
contém a chave de encriptação pública do servidor de prática, bem como uma nova assinatura do Servidor CA. O objectivo da assinatura é dizer a qualquer pessoa que confie na CA que também pode confiar no certificado sammy-server
.
Se esta requisição fosse para um servidor real como um servidor web ou VPN, o último passo no Servidor CA seria distribuir os novos arquivos sammy-server.crt
e ca.crt
do Servidor CA para o servidor remoto que fez a requisição CSR:
- scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
- scp pki/ca.crt sammy@your_server_ip:/tmp
Neste ponto, você seria capaz de usar o certificado emitido com algo como um servidor web, uma VPN, ferramenta de gerenciamento de configuração, sistema de banco de dados, ou para fins de autenticação do cliente.
(Opcional) – Revogando um Certificado
Ocasionalmente, você pode precisar revogar um certificado para evitar que um usuário ou servidor o utilize. Talvez o laptop de alguém tenha sido roubado, um servidor web tenha sido comprometido, ou um funcionário ou contratado tenha deixado sua organização.
Para revogar um certificado, o processo geral segue estes passos:
- Revogar o certificado com o comando
./easyrsa revoke client_name
. - Gerar um novo CRL com o comando
./easyrsa gen-crl
. - Transfira o arquivo atualizado
crl.pem
para o servidor ou servidores que dependem da sua CA, e nesses sistemas copie-o para o diretório ou diretórios necessários para os programas que se referem a ele. - Reinicie qualquer serviço que use sua CA e o arquivo CRL.
Você pode usar este processo para revogar qualquer certificado que você tenha emitido anteriormente a qualquer momento. Vamos rever cada passo em detalhe nas seções seguintes, começando com o comando revoke
Revogar um certificado
Para revogar um certificado, navegue até o diretório easy-rsa
no seu servidor CA:
- cd ~/easy-rsa
Next, execute o script easyrsa
com a opção revoke
, seguido do nome do cliente que você deseja revogar. Seguindo o exemplo de prática acima, o nome comum do certificado é sammy-server
:
- ./easyrsa revoke sammy-server
Isto irá pedir-lhe para confirmar a revogação, digitando yes
:
OutputPlease confirm you wish to revoke the certificate with the following subject:subject= commonName = sammy-serverType the word 'yes' to continue, or any other input to abort. Continue with revocation: yes. . .Revoking Certificate 8348B3F146A765581946040D5C4D590A. . .
Note o valor realçado na linha Revoking Certificate
. Este valor é o número de série único do certificado que está sendo revogado. Se quiser examinar a lista de revogação na última etapa desta secção para verificar se o certificado está nela, precisará deste valor.
Após confirmar a acção, a AC irá revogar o certificado. Entretanto, os sistemas remotos que dependem da AC não têm como verificar se algum certificado foi revogado. Os usuários e servidores ainda poderão utilizar o certificado até que a Lista de Revogação de Certificados (CRL) da CA seja distribuída para todos os sistemas que dependem da CA.
No próximo passo você gerará uma CRL ou atualizará uma CRL existente crl.pem
file.
Gerando uma Lista de Revogação de Certificados
Agora que você tenha revogado um certificado, é importante atualizar a lista de certificados revogados no seu servidor da CA. Uma vez que você tenha uma lista de revogação atualizada você será capaz de dizer quais usuários e sistemas têm certificados válidos em sua CA.
Para gerar um CRL, execute o comando easy-rsa
com a opção gen-crl
enquanto ainda dentro do diretório ~/easy-rsa
:
- ./easyrsa gen-crl
Se você tiver usado uma frase-chave ao criar seu arquivo ca.key
, você será solicitado a inseri-la. O comando gen-crl
irá gerar um ficheiro chamado crl.pem
, contendo a lista actualizada de certificados revogados para aquela CA.
Próximo terá de transferir o ficheiro crl.pem
actualizado para todos os servidores e clientes que dependem desta CA cada vez que executar o comando gen-crl
. Caso contrário, clientes e sistemas ainda poderão acessar serviços e sistemas que utilizam sua CA, já que esses serviços precisam saber sobre o status revogado do certificado.
Transferir uma Lista de Revogação de Certificado
Agora que você tenha gerado uma CRL no seu servidor CA, você precisa transferi-la para sistemas remotos que confiam na sua CA. Para transferir este arquivo para seus servidores, você pode usar o comando scp
comando.
Nota: Este tutorial explica como gerar e distribuir um CRL manualmente. Enquanto existem métodos mais robustos e automatizados para distribuir e verificar listas de revogação como OCSP-Stapling, configurar esses métodos está além do escopo deste artigo.
Segure que você está logado em seu servidor CA como seu usuário não-root e execute o seguinte, substituindo em seu próprio servidor IP ou nome DNS no lugar de your_server_ip
:
- scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp
Agora o arquivo está no sistema remoto, o último passo é atualizar quaisquer serviços com a nova cópia da lista de revogação.
Updating Services that Support a CRL
Listar os passos que você precisa usar para atualizar os serviços que usam o arquivo crl.pem
está além do escopo deste tutorial. Em geral você precisará copiar o arquivo crl.pem
para o local que o serviço espera e então reiniciá-lo usando systemctl
.
Após ter atualizado seus serviços com o novo arquivo crl.pem
, seus serviços poderão rejeitar conexões de clientes ou servidores que estejam usando um certificado revogado.
Examinar e Verificar o Conteúdo de um CRL
Se você deseja examinar um arquivo CRL, por exemplo para confirmar uma lista de certificados revogados, use o seguinte comando openssl
de dentro do seu diretório easy-rsa
no seu servidor CA:
- cd ~/easy-rsa
- openssl crl -in pki/crl.pem -noout -text
Você também pode executar este comando em qualquer servidor ou sistema que tenha a ferramenta openssl
instalada com uma cópia do arquivo crl.pem
. Por exemplo, se você transferiu o arquivo crl.pem
para seu segundo sistema e deseja verificar se o certificado sammy-server
está revogado, você pode usar um comando openssl
como o seguinte, substituindo o número de série que você notou anteriormente quando você revogou o certificado no lugar do destacado aqui:
- openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output Serial Number: 8348B3F146A765581946040D5C4D590A Revocation Date: Apr 1 20:48:02 2020 GMT
Note como o comando grep
é usado para verificar o número de série único que você notou na etapa de revogação. Agora você pode verificar o conteúdo da sua Lista de Revogação de Certificados em qualquer sistema que dependa dela para restringir o acesso a usuários e serviços.
Conclusion
Neste tutorial você criou uma Autoridade Certificadora privada usando o pacote Easy-RSA em um servidor autônomo Ubuntu 20.04. Você aprendeu como o modelo de confiança funciona entre as partes que confiam na CA. Você também criou e assinou um Pedido de Assinatura de Certificado (CSR) para um servidor de prática e depois aprendeu como revogar um certificado. Finalmente, você aprendeu como gerar e distribuir uma Certificate Revocation List (CRL) para qualquer sistema que confie na sua CA para garantir que usuários ou servidores que não devem acessar serviços sejam impedidos de fazê-lo.
Agora você pode emitir certificados para usuários e usá-los com serviços como OpenVPN. Você também pode usar a sua CA para configurar servidores web de desenvolvimento e de encenação com certificados para proteger seus ambientes não-produtivos. Usar uma CA com certificados TLS durante o desenvolvimento pode ajudar a garantir que o seu código e ambientes coincidam o mais próximo possível do seu ambiente de produção.
Se quiser saber mais sobre como usar o OpenSSL, o nosso OpenSSL Essentials: Trabalhando com Certificados SSL, Chaves Privadas e CSRs o tutorial tem muitas informações adicionais para ajudá-lo a se familiarizar mais com os fundamentos do OpenSSL.