quarta-feira, 10 de junho de 2020

Gerar certificado SSL auto-assinado

Gerar certificado SSL auto-assinado para uso no Apache 2 em servidores GNU-Linux

Essa dica se destina principalmente ao administrador de rede/servidores que deseja disponibilizar páginas/conteúdo web de forma segura/criptografada na sua rede local e não deseja para isso adquirir um certificado digital SSL de uma empresa/autoridade certificadora.
O procedimento foi testado no Ubuntu Server 12.04 e 14.04 com as versões 2.2.22 e 2.4.7 do Servidor Web Apache. Deve funcionar no Debian e seus derivados e também em outras distros GNU-Linux, apenas adaptando a localização do diretório de configuração do servidor apache e a forma de gerenciamento do serviço.
Para realizar o procedimento é necessário acesso de root ou um usuário com privilégios sudo e ter previamente o servidor web Apache2 e o pacote openssl instalados no seu servidor.
Caso não esteja habilitado, habilite o módulo ssl do Apache com o comando:
  # a2enmod ssl
Reinicie o apache:
  # service apache2 restart
Dentro do diretório de configuração do apache, /etc/apache2, crie uma pasta chamada ssl caso não exista:
  #  mkdir ssl
Para fins de organização, crie as pastas certs e private dentro da pasta ssl:
  # mkdir ssl/certs ssl/private
Dentro do pasta ssl gere uma chave privada de 2048 bits:
  # openssl genrsa -des3 -out nomedachavecomsenha.key 2048
Será solicitada uma senha duas vezes.
Use a chave recém-criada para criar um pedido de certificado:
  #  openssl req -new -key nomedachavecomsenha.key -out  nomedachave.csr
Serão solicitadas algumas informações:
  1. A senha que foi inserida para a chave anteriormente criada;
  2. o codigo do País com duas letras;
  3. nome do estado;
  4. nome da cidade;
  5. Nome da organização/instituição;
  6. Nome da unidade da organização/instituição;
  7. Common Name; (Esse é o campo mais importante onde se deve colocar o nome ou o IP do seu servidor/domínio);
  8. Endereço de e-mail;
  9. Outros atributos extras opcionais;
Execute o comando abaixo para gerar uma nova chave sem uma senha:
  # openssl rsa -in nomedachavecomsenha.key -out nomedachavesemsenha.key
Será solicitada a senha da chave novamente.
Use este comando para criar o seu certificado auto-assinado:
  # openssl x509 -req -in nomedachave.csr -days 365 -signkey nomedachavesemsenha.key -out nomedocertificado.crt
Ainda dentro da pasta ssl copie a chave e o certificado para as pastas adequadas:
  # cp nomedocertificado.crt certs/  ; cp nomedachavesemsenha.key private/
Vá para a pasta sites-available dentro da pasta do apache e com o editor da sua preferência edite o arquivo de configuração do site ssl, no meu caso o arquivo default-ssl.conf (em versões mais antigas do apache esse arquivo deve se chamar apenas default-ssl, sem o .conf),
Comente as seguintes linhas (acrescentando no início da linha o caractere #):
  #SSLCertificateFile     /etc/ssl/certs/ssl-cert-snakeoil.pem
  #SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
E adicione as linhas com os caminhos para os seus certificados:
  SSLCertificateFile /etc/apache2/ssl/certs/nomedocertificado.crt
  SSLCertificateKeyFile /etc/apache2/ssl/private/nomedachavesemsenha.key
Ative o site default-ssl:
  # a2ensite default-ssl
Reinicie ou recarregue o apache:
  # service apache2 restart
ou
  # service apache2 reload
Agora no seu navegador web é só acessar o seu site com https://enderecodoseuservidor e conferir que ele está usando o seu certificado auto-assinado.
Mário Jorge é Analista de Tecnologia da Informação do IFCE, https://diasporabr.com.br/i/651382b44715

Nenhum comentário:

Postar um comentário