SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
Curso Técnico de Manutenção e Suporte em Informática
                         Segurança da Informação
                          Prof. Leandro Almeida
                 Certificação Digital – Criando uma Autoridade Certificadora

OBS: Este roteiro foi gentilmente cedido pelo Professor Dênio Mariz.

   1. Preparativos iniciais
       Usaremos a ferramenta OpenSSL para gerar um par de chaves pública e privada e para
gerar um certificado digital para uma Autoridade Certificadora. Após isso iremos assinar
requisições de certificados de clientes.
       Para instalar o OpenSSL:

      # apt­get install openssl

      Vamos configurar o ambiente para nossa CA:

      # cd /opt
      # mkdir CA
      # cd CA
      # mkdir newcerts private
      # echo '01' > serial
      # touch index.txt

     Devemos criar fazer o download do arquivo openssl.cnf do site do professor com o
comando:

     #   wget   http://dl.dropbox.com/u/22560647/iDEZ/CTMSI/Seguran
%C3%A7a%20da%20Informa%C3%A7%C3%A3o/openssl.cnf


   2. Criando um par de chaves
      Para criar a chave privada digite:

      # openssl genrsa ­des3 ­out private/CA.key 1024

      As opções indicam o seguinte:
-genrsa indica ao OpenSSL que voce quer gerar um par de chaves
       -des3 indica que a chave privada deve ser criptografada. Vai pedir uma password e vai
       cifrar o arquivo que contém a chave privada com o algoritmo 3DES (-aes128 usaria o
       algoritmo AES).
       -out indica onde salvar a chave privada
       1024 indica o número de bits da chave gerada

       Você pode verificar a chave criada com o comando:

       # openssl rsa ­text ­in private/CA.key | more

       Agora vamos gerar a chave pública com o comando:

       # openssl rsa –in private/CA.key –pubout –out CA.pub

   3. Criando um certificado raiz
      Para criar um certificado raiz, use o comando:

     #   openssl   req   ­new   ­x509   –key   private/CA.key   ­extensions 
v3_ca ­out CA_RAIZ.pem ­days 3650

       As opções são as seguintes:
       -new -x509 pede para criar um novo certificado no formato X.509
       -extensions v3_ca indica extensão necessária para criar um certificado raiz
       -days 3650 indica a validade do certificado (10 anos)
       -out indica o nome do arquivo que conterá o certificado

       Você pode vizualizar o certificado com o comando:

       # openssl x509 ­in CA_RAIZ.pem ­noout ­text | more

    4. Criando um pedido de assinatura de certificado(Certificate Signing Request – CSR)
        Um Pedido de Assinatura de Certificado (CSR) é um conjunto de informações de um
cliente que são enviados para um Certificate Authority (CA) para serem assinadas, ou seja, para
queseja criado um certificado para esse cliente.
        Aqui, faremos o papel do cliente solicitante e também do certificador. Ou seja,
geraremos um CSR e depois nós mesmo assinaremos. Normalmente, um cliente não é
também um certificador e, nesses casos, ele enviaria o CSR para um certificador e receberia o
certificado.
        Assuma que somos um cliente e queremos criar um certificado para um site na web.
Então vamos criar um pedido de assinatura de um certificado (CSR) para o site
www.SEUNOME.com.br com o comando:

     #   openssl   req   ­new   ­nodes   ­out   www.SEUNOME.csr   –keyout 
www.SEUNOME.key

       O arquivo www.SEUNOME.csr contém o CSR que deve ser enviado para o Certificador.
O arquivo www.SEUNOME.key contém a chave privada do cliente e deve ser mantida
em segredo pelo cliente.

    5. Criando um certificado a partir de um CSR(ou assinando um certificado)
       Agora assuma que somos a autoridade certificadora e que recebemos o CSR do cliente
(gerado no item anterior). Vamos criar o certificado para o cliente solicitante
(www.SEUNOME.com.br) com o comando:

     #   openssl   ca   –out   www.SEUNOME.pem   –keyfile   private/CA.key   –
cert CA_Raiz.pem –config openssl.cnf –infiles www.SEUNOME.csr

      As opções são as seguintes:
      ca subcomando do openssl para geração de certificados
      -out o nome do certificado a ser gerado
      -keyfile indica o arquivo contendo a chave privada do certificador
      -cert indica o arquivo contendo o certificado raiz do certificador
      -config indica o nome do arquivo de configuração (com outras opções e defaults)
      -infiles os arquivos contendo os CSR a serem assinados

    6. Testando o certificado
        Vamos simular um servidor WWW usando o OpenSSL. Ele ficará escutando na porta
4433 uma conexão e estabelecerá uma conexão SSL quando um browser contactá-lo. Para
isso, digite o comando:

     #   openssl   s_server   –cert   www.SEUNOME.pem   –www   –key 
www.SEUNOME.key

       Agora abra um browser na mesma máquina e acesse o seguinte URL:
https://localhost:4433 . Voce pode acessar de um browser em outra máquina, usando a URL
https://IP:4433, onde IP é o endereço IP do host que está rodando o openssl s_server.

Mais conteúdo relacionado

Destaque (12)

Roteiro vsftpd
Roteiro vsftpdRoteiro vsftpd
Roteiro vsftpd
 
Roteiro sambaswat
Roteiro sambaswatRoteiro sambaswat
Roteiro sambaswat
 
Unidade 5 hardening-linux
Unidade 5  hardening-linuxUnidade 5  hardening-linux
Unidade 5 hardening-linux
 
Roteiro cups
Roteiro cupsRoteiro cups
Roteiro cups
 
Roteiro nfs
Roteiro nfsRoteiro nfs
Roteiro nfs
 
D do s
D do sD do s
D do s
 
Roteiro sshd
Roteiro sshdRoteiro sshd
Roteiro sshd
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Segurança de-redes
Segurança de-redesSegurança de-redes
Segurança de-redes
 
Single Packet Authorization
Single Packet AuthorizationSingle Packet Authorization
Single Packet Authorization
 
Unidade2 projeto lógico da rede
Unidade2   projeto lógico da redeUnidade2   projeto lógico da rede
Unidade2 projeto lógico da rede
 
Roteiro samba
Roteiro sambaRoteiro samba
Roteiro samba
 

Semelhante a Unidade7 roteiro

Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edCarlos Melo
 
Abordagem sistemática da infra-estrutura de chave pública
Abordagem sistemática da infra-estrutura de chave públicaAbordagem sistemática da infra-estrutura de chave pública
Abordagem sistemática da infra-estrutura de chave públicabrunoluiz
 
Certificados SSL ( Symantec )
Certificados SSL ( Symantec )Certificados SSL ( Symantec )
Certificados SSL ( Symantec )Ricardo Costa
 
Architecture In A Box - Declarações e Identidades Na Computação Na Nuvem
Architecture In A Box - Declarações e Identidades Na Computação Na NuvemArchitecture In A Box - Declarações e Identidades Na Computação Na Nuvem
Architecture In A Box - Declarações e Identidades Na Computação Na NuvemMarkus Christen
 
Segurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasBruno Luiz Pereira da Silva
 
SSL,Secure Sockets Layer
SSL,Secure Sockets LayerSSL,Secure Sockets Layer
SSL,Secure Sockets Layerraquelcarsi
 
Cenários do mundo real para uma arquitetura de autenticação e autorização no ...
Cenários do mundo real para uma arquitetura de autenticação e autorização no ...Cenários do mundo real para uma arquitetura de autenticação e autorização no ...
Cenários do mundo real para uma arquitetura de autenticação e autorização no ...Markus Christen
 
Configurando o connector salesforce
Configurando o connector salesforceConfigurando o connector salesforce
Configurando o connector salesforceGuilherme Baccas
 
Aula src openvpn-configuração com chave publica
Aula src   openvpn-configuração com chave publicaAula src   openvpn-configuração com chave publica
Aula src openvpn-configuração com chave publicaRafael Simões
 
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLIConfigurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLIwordcamppoa
 
Rafael Funchal - Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Rafael Funchal - Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLIRafael Funchal - Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Rafael Funchal - Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLIWordPress Floripa
 
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIConfigurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIRafael Funchal
 
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIWordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIRafael Funchal
 

Semelhante a Unidade7 roteiro (20)

Aula20 open vpn
Aula20 open vpnAula20 open vpn
Aula20 open vpn
 
Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 ed
 
Certificados Digitais
Certificados DigitaisCertificados Digitais
Certificados Digitais
 
Abordagem sistemática da infra-estrutura de chave pública
Abordagem sistemática da infra-estrutura de chave públicaAbordagem sistemática da infra-estrutura de chave pública
Abordagem sistemática da infra-estrutura de chave pública
 
Politicas de segurança
Politicas de segurançaPoliticas de segurança
Politicas de segurança
 
Certificados SSL ( Symantec )
Certificados SSL ( Symantec )Certificados SSL ( Symantec )
Certificados SSL ( Symantec )
 
Architecture In A Box - Declarações e Identidades Na Computação Na Nuvem
Architecture In A Box - Declarações e Identidades Na Computação Na NuvemArchitecture In A Box - Declarações e Identidades Na Computação Na Nuvem
Architecture In A Box - Declarações e Identidades Na Computação Na Nuvem
 
Maria certificado
Maria certificadoMaria certificado
Maria certificado
 
Segurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheiras
 
SSL,Secure Sockets Layer
SSL,Secure Sockets LayerSSL,Secure Sockets Layer
SSL,Secure Sockets Layer
 
SSL no apache
SSL no apacheSSL no apache
SSL no apache
 
Aula ix infraestrutura - 03032012
Aula ix   infraestrutura - 03032012Aula ix   infraestrutura - 03032012
Aula ix infraestrutura - 03032012
 
Certificados SSL e Let's Encrypt
Certificados SSL e Let's EncryptCertificados SSL e Let's Encrypt
Certificados SSL e Let's Encrypt
 
Cenários do mundo real para uma arquitetura de autenticação e autorização no ...
Cenários do mundo real para uma arquitetura de autenticação e autorização no ...Cenários do mundo real para uma arquitetura de autenticação e autorização no ...
Cenários do mundo real para uma arquitetura de autenticação e autorização no ...
 
Configurando o connector salesforce
Configurando o connector salesforceConfigurando o connector salesforce
Configurando o connector salesforce
 
Aula src openvpn-configuração com chave publica
Aula src   openvpn-configuração com chave publicaAula src   openvpn-configuração com chave publica
Aula src openvpn-configuração com chave publica
 
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLIConfigurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
 
Rafael Funchal - Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Rafael Funchal - Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLIRafael Funchal - Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Rafael Funchal - Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
 
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIConfigurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
 
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLIWordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
WordCamp Floripa 2018: Configurando SSL com Let’s Encrypt, Easy Engine e WP-CLI
 

Mais de Leandro Almeida (20)

Unidade6 roteiro pentest
Unidade6 roteiro pentestUnidade6 roteiro pentest
Unidade6 roteiro pentest
 
Unidade5 roteiro footprint
Unidade5 roteiro footprintUnidade5 roteiro footprint
Unidade5 roteiro footprint
 
Unidade5 footprint
Unidade5 footprintUnidade5 footprint
Unidade5 footprint
 
Unidade8 roteiro
Unidade8 roteiroUnidade8 roteiro
Unidade8 roteiro
 
Unidade 8 ieee802-11i
Unidade 8   ieee802-11iUnidade 8   ieee802-11i
Unidade 8 ieee802-11i
 
Unidade4 cripto
Unidade4 criptoUnidade4 cripto
Unidade4 cripto
 
Roteiro dns
Roteiro dnsRoteiro dns
Roteiro dns
 
Unidade 6 servico dns
Unidade 6   servico dnsUnidade 6   servico dns
Unidade 6 servico dns
 
Roteiro web
Roteiro webRoteiro web
Roteiro web
 
Unidade 7 cripto
Unidade 7  criptoUnidade 7  cripto
Unidade 7 cripto
 
Unidade 5 servico web
Unidade 5   servico webUnidade 5   servico web
Unidade 5 servico web
 
Unidade3 seg perimetral-vpn
Unidade3 seg perimetral-vpnUnidade3 seg perimetral-vpn
Unidade3 seg perimetral-vpn
 
Unidade3 seg perimetral-vpn
Unidade3 seg perimetral-vpnUnidade3 seg perimetral-vpn
Unidade3 seg perimetral-vpn
 
Unidade3 seg perimetral-ids
Unidade3 seg perimetral-idsUnidade3 seg perimetral-ids
Unidade3 seg perimetral-ids
 
Unidade3 roteiro proxy
Unidade3 roteiro proxyUnidade3 roteiro proxy
Unidade3 roteiro proxy
 
Unidade3 seg perimetral-proxy
Unidade3 seg perimetral-proxyUnidade3 seg perimetral-proxy
Unidade3 seg perimetral-proxy
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Unidade 5 servico dhcp
Unidade 5   servico dhcpUnidade 5   servico dhcp
Unidade 5 servico dhcp
 
Unidade3 roteiro
Unidade3 roteiroUnidade3 roteiro
Unidade3 roteiro
 
Unidade3 seg perimetral
Unidade3 seg perimetralUnidade3 seg perimetral
Unidade3 seg perimetral
 

Unidade7 roteiro

  • 1. Curso Técnico de Manutenção e Suporte em Informática Segurança da Informação Prof. Leandro Almeida Certificação Digital – Criando uma Autoridade Certificadora OBS: Este roteiro foi gentilmente cedido pelo Professor Dênio Mariz. 1. Preparativos iniciais Usaremos a ferramenta OpenSSL para gerar um par de chaves pública e privada e para gerar um certificado digital para uma Autoridade Certificadora. Após isso iremos assinar requisições de certificados de clientes. Para instalar o OpenSSL: # apt­get install openssl Vamos configurar o ambiente para nossa CA: # cd /opt # mkdir CA # cd CA # mkdir newcerts private # echo '01' > serial # touch index.txt Devemos criar fazer o download do arquivo openssl.cnf do site do professor com o comando: #   wget   http://dl.dropbox.com/u/22560647/iDEZ/CTMSI/Seguran %C3%A7a%20da%20Informa%C3%A7%C3%A3o/openssl.cnf 2. Criando um par de chaves Para criar a chave privada digite: # openssl genrsa ­des3 ­out private/CA.key 1024 As opções indicam o seguinte:
  • 2. -genrsa indica ao OpenSSL que voce quer gerar um par de chaves -des3 indica que a chave privada deve ser criptografada. Vai pedir uma password e vai cifrar o arquivo que contém a chave privada com o algoritmo 3DES (-aes128 usaria o algoritmo AES). -out indica onde salvar a chave privada 1024 indica o número de bits da chave gerada Você pode verificar a chave criada com o comando: # openssl rsa ­text ­in private/CA.key | more Agora vamos gerar a chave pública com o comando: # openssl rsa –in private/CA.key –pubout –out CA.pub 3. Criando um certificado raiz Para criar um certificado raiz, use o comando: #   openssl   req   ­new   ­x509   –key   private/CA.key   ­extensions  v3_ca ­out CA_RAIZ.pem ­days 3650 As opções são as seguintes: -new -x509 pede para criar um novo certificado no formato X.509 -extensions v3_ca indica extensão necessária para criar um certificado raiz -days 3650 indica a validade do certificado (10 anos) -out indica o nome do arquivo que conterá o certificado Você pode vizualizar o certificado com o comando: # openssl x509 ­in CA_RAIZ.pem ­noout ­text | more 4. Criando um pedido de assinatura de certificado(Certificate Signing Request – CSR) Um Pedido de Assinatura de Certificado (CSR) é um conjunto de informações de um cliente que são enviados para um Certificate Authority (CA) para serem assinadas, ou seja, para queseja criado um certificado para esse cliente. Aqui, faremos o papel do cliente solicitante e também do certificador. Ou seja, geraremos um CSR e depois nós mesmo assinaremos. Normalmente, um cliente não é também um certificador e, nesses casos, ele enviaria o CSR para um certificador e receberia o certificado. Assuma que somos um cliente e queremos criar um certificado para um site na web. Então vamos criar um pedido de assinatura de um certificado (CSR) para o site www.SEUNOME.com.br com o comando: #   openssl   req   ­new   ­nodes   ­out   www.SEUNOME.csr   –keyout  www.SEUNOME.key O arquivo www.SEUNOME.csr contém o CSR que deve ser enviado para o Certificador.
  • 3. O arquivo www.SEUNOME.key contém a chave privada do cliente e deve ser mantida em segredo pelo cliente. 5. Criando um certificado a partir de um CSR(ou assinando um certificado) Agora assuma que somos a autoridade certificadora e que recebemos o CSR do cliente (gerado no item anterior). Vamos criar o certificado para o cliente solicitante (www.SEUNOME.com.br) com o comando: #   openssl   ca   –out   www.SEUNOME.pem   –keyfile   private/CA.key   – cert CA_Raiz.pem –config openssl.cnf –infiles www.SEUNOME.csr As opções são as seguintes: ca subcomando do openssl para geração de certificados -out o nome do certificado a ser gerado -keyfile indica o arquivo contendo a chave privada do certificador -cert indica o arquivo contendo o certificado raiz do certificador -config indica o nome do arquivo de configuração (com outras opções e defaults) -infiles os arquivos contendo os CSR a serem assinados 6. Testando o certificado Vamos simular um servidor WWW usando o OpenSSL. Ele ficará escutando na porta 4433 uma conexão e estabelecerá uma conexão SSL quando um browser contactá-lo. Para isso, digite o comando: #   openssl   s_server   –cert   www.SEUNOME.pem   –www   –key  www.SEUNOME.key Agora abra um browser na mesma máquina e acesse o seguinte URL: https://localhost:4433 . Voce pode acessar de um browser em outra máquina, usando a URL https://IP:4433, onde IP é o endereço IP do host que está rodando o openssl s_server.