Configurar o Apache com certificado TLS / SSL autoassinado no Ubuntu 16.04

O SSL e seu sucessor TLS (Secure Sockets Layer / Transport Layer Security) adicionam uma camada de criptografia entre o cliente e o servidor. Sem essa tecnologia, os dados são enviados ao servidor em texto sem formatação, permitindo que terceiros leiam todas as informações enviadas e recebidas pelo servidor.

Este tutorial ensinará como criar um certificado SSL / TLS e ativá-lo no Apache 2.4 no Ubuntu 16.04. Presumo que o Apache já esteja configurado e funcionando. Se você quiser aprender como instalar uma pilha LAMP, consulte este documento do Vultr .

Atenção

Os certificados SSL / TLS são normalmente gerados por uma CA confiável (autoridade de certificação). Ao gerar você mesmo, você será o assinante, o que significa que o navegador não poderá verificar se a identidade do certificado deve ser confiável e alertará o usuário. Embora seja possível ignorar esse alerta, sites voltados para o público devem estar usando um certificado assinado por uma CA confiável. Vamos criptografar é uma CA que oferece certificados gratuitamente. Você pode aprender como instalar o certificado no Apache e Ubuntu 16.04 aqui .

Para aplicativos internos, o uso de um certificado autoassinado pode ser válido, especialmente se você não tiver um nome de domínio.


Etapa 1: Gerando o Certificado

  1. Primeiro, vamos criar um local para armazenar o arquivo.

    mkdir ~/certificates
    cd ~/certificates
    
  2. Gere CSR e chave privada.

    openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
    

    Ele solicitará informações para a solicitação de certificado. Complete com as informações apropriadas.

    Country Name (2 letter code) [AU]: US
    State or Province Name (full name) [Some-State]: FL
    Locality Name (eg, city) []: Miami
    Organization Name (eg, company) [My Company]: My Company
    Organizational Unit Name (eg, section) []:
    

    Nome comum deve ser o seu nome de domínio ou o endereço IP do servidor. Além disso, preencha seu e-mail.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:[email protected]
    
  3. Agora, mova o certificado para a pasta de configuração do Apache.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. O certificado está pronto! Em seguida, prepararemos o Apache para trabalhar com o certificado.

Etapa 2: configuração do firewall

  1. Temos que garantir que a porta TCP 443 esteja aberta. Essa porta é usada em conexões SSL em vez da porta 80. Neste tutorial, usaremos o UFW.

  2. Verifique se o UFW está ativado.

    sudo ufw enable
    
  3. Agora permita as configurações predefinidas do Apache para o firewall.

    sudo ufw allow 'Apache Full'
    
  4. Ao digitar " sudo ufw status", você pode ver uma lista das regras atuais. Sua configuração deve se parecer com isso:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. Você também deve permitir o OpenSSH aqui para conexões futuras.

    sudo ufw allow 'OpenSSH'
    

Etapa 3: configuração do host virtual Apache

  1. Navegue para o diretório de configuração do site padrão do Apache.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. Este arquivo informa ao servidor onde procurar o certificado SSL. Com os comentários removidos, deve parecer com a seguinte configuração.

    <IfModule mod_ssl.c>
      <VirtualHost _default_:443>
       ServerAdmin webmaster@localhost
    
       DocumentRoot /var/www/html
    
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
    
       SSLEngine on
    
       SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
       SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
       </FilesMatch>
       <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
       </Directory>
    
     </VirtualHost>
    </IfModule>
    
  3. Edite esta linha:

    ServerAdmin [email protected]
    
  4. Adicione isso logo abaixo da ServerAdminlinha:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. Agora, edite estas linhas com nosso local do certificado:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. Nosso arquivo final deve se parecer com isso:

    <IfModule mod_ssl.c>
     <VirtualHost _default_:443>
      ServerAdmin [email protected]
      ServerName 203.0.113.122
    
      DocumentRoot /var/www/html
    
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    
      SSLEngine on
    
      SSLCertificateFile    /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
      <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
      </FilesMatch>
      <Directory /usr/lib/cgi-bin>
       SSLOptions +StdEnvVars
      </Directory>
    
     </VirtualHost>
    </IfModule>
    
  7. Salve e feche o arquivo.

Etapa 4: Ativando o Módulo SSL do Apache

  1. Ative o módulo SSL digitando:

    sudo a2enmod ssl
    
  2. Agora ative o site que acabamos de editar:

    sudo a2ensite default-ssl.conf
    
  3. Reinicie o Apache:

    sudo service apache2 restart
    
  4. Vamos acessar o novo site seguro! Abra-o no seu navegador (digite https: // ).

    https://YOUR_SERVER_IP
    

Seu navegador avisará que o certificado é inválido, como esperávamos. Isso acontece porque o certificado não está assinado. Siga as etapas oferecidas pelo seu navegador para prosseguir para o seu site.

Etapa 5: redirecione todo o tráfego HTTP para HTTPS (opcional)

  1. Abra o arquivo host virtual padrão do Apache:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. Adicione esta linha dentro da <VirtualHost *:80>tag:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Recarregar a configuração do Apache:

    sudo service apache2 reload
    

Todo o tráfego do site agora será redirecionado automaticamente para HTTPS.



Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.