CodeGym /Cursos /Docker SELF /Implantação de servidor web com hosts virtuais e SSL

Implantação de servidor web com hosts virtuais e SSL

Docker SELF
Nível 7 , Lição 5
Disponível

Implantação de servidor web com hosts virtuais e SSL

1. Preparação do ambiente

Chegou a hora de juntar tudo. Hoje, vamos fazer o deploy de um servidor com múltiplos hosts virtuais e conectar HTTPS a eles. Vamos testar, fazer debug e ajustar a configuração final.

Nosso objetivo

Neste projeto, vamos configurar dois sites em um servidor web:

  • example.com
  • test.com

Para cada site, vamos configurar um host virtual, conectar HTTPS e também mostrar os passos de debug e verificação do funcionamento. Tá preparado? Vamos lá!

Preparação

Antes de começar, vamos garantir que tudo está configurado corretamente:

  1. Você já tem um servidor web instalado (Nginx ou Apache).

    • Se você usa Nginx:

      sudo apt-get update
      sudo apt-get install nginx
      
    • Ou Apache:

      sudo apt-get update
      sudo apt-get install apache2
      
  2. O pacote Certbot para trabalhar com SSL está instalado.

    • Para Nginx:

      sudo apt-get install certbot python3-certbot-nginx
      
    • Para Apache:

      sudo apt-get install certbot python3-certbot-apache
      
  3. Você tem acesso ao servidor onde os DNS para os domínios example.com e test.com estão configurados, ou pode usar o /etc/hosts para testes.


2. Configurando diretórios para cada site

Vamos começar criando os diretórios e arquivos para nossos sites.

Passo 1: Criando pastas para os sites

sudo mkdir -p /var/www/example.com
sudo mkdir -p /var/www/test.com

Passo 2: Criando arquivos HTML de teste

Vamos criar um arquivo HTML simples para cada site:

example.com

sudo nano /var/www/example.com/index.html

Conteúdo:

<!DOCTYPE html>
<html>
<head>
    <title>Bem-vindo ao example.com</title>
</head>
<body>
    <h1>Este é o example.com</h1>
    <p>Bem-vindo ao example.com! O site está no ar e seguro com SSL!</p>
</body>
</html>

test.com

sudo nano /var/www/test.com/index.html

Conteúdo:

<!DOCTYPE html>
<html>
<head>
    <title>Bem-vindo ao test.com</title>
</head>
<body>
    <h1>Este é o test.com</h1>
    <p>Bem-vindo ao test.com! O site está no ar e seguro com SSL!</p>
</body>
</html>

3. Configuração de hosts virtuais

Vamos criar um arquivo de configuração separado para cada site.

Passo 1: Configuração para Nginx

example.com

sudo nano /etc/nginx/sites-available/example.com

Conteúdo:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

test.com

sudo nano /etc/nginx/sites-available/test.com

Conteúdo:

server {
    listen 80;
    server_name test.com www.test.com;

    root /var/www/test.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Ativamos a configuração:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

Reiniciamos o servidor:

sudo nginx -t
sudo systemctl reload nginx

Passo 2: Configuração para Apache

example.com

sudo nano /etc/apache2/sites-available/example.com.conf

Conteúdo:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example.com
    <Directory /var/www/example.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

test.com

sudo nano /etc/apache2/sites-available/test.com.conf

Conteúdo:

<VirtualHost *:80>
    ServerName test.com
    ServerAlias www.test.com

    DocumentRoot /var/www/test.com
    <Directory /var/www/test.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Ativamos as configurações:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl reload apache2

4. Configurando HTTPS para sites

Agora vamos conectar o SSL para ambos os sites usando o Let’s Encrypt.

sudo certbot --nginx
# ou para Apache:
sudo certbot --apache

O processo vai perguntar quais sites você deseja emitir certificados. Selecione example.com e test.com. O Certbot vai atualizar automaticamente a configuração dos servidores.


5. Testando os sites

Depois de finalizar a configuração, visite seus sites:

Você deve ver as páginas HTML criadas. Verifique se o navegador está mostrando "Seguro" (Secure) na barra de endereços.


6. Depuração e Verificação

Se algo deu errado, dá uma olhada nos logs:

  • Para Nginx:

    sudo tail -f /var/log/nginx/error.log
    
  • Para Apache:

    sudo tail -f /var/log/apache2/error.log
    

Ou verifica a acessibilidade com curl:

curl -I http://example.com
curl -I https://example.com

7. Renovação de certificados

O Certbot renova automaticamente os certificados usando o cron do sistema. Para verificar, você pode rodar manualmente:

sudo certbot renew --dry-run

E é isso aí, passo a passo, configuramos o servidor web com suporte a múltiplos sites e HTTPS. Você acabou de passar de um servidor vazio para um totalmente funcional com hosts virtuais e SSL. Agora o seu servidor está pronto para mostrar seus sites para o mundo. Não é massa isso?

1
Опрос
Trabalhando com servidores web no Linux,  7 уровень,  5 лекция
недоступен
Trabalhando com servidores web no Linux
Trabalhando com servidores web no Linux
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION