SingularCode

Dois domínios HTTPS

Dois Domínios de HTTPS

Instalando o Apache

Atualizando o sistema e instalando o apache:

sudo apt update
sudo apt install apache2

Criando dois diretórios para cada site:

sudo mkdir -p /var/www/site1.com/public_html
sudo mkdir -p /var/www/site2.com/public_html

Alterando os usuários de cada pasta:

sudo chown -R www-data:www-data /var/www/site1.com/public_html
sudo chown -R www-data:www-data /var/www/site2.com/public_html

Alterando as permissões de cada pasta:

sudo chmod -R 777 /var/www/site1.com
sudo chown -R 777 /var/www/site2.com

Criar um arquivo index.html para o domínio site1.com:

sudo nano /var/www/site1.com/public_html/index.html

Digite no arquivo:

<!DOCTYPE html>
<html>
    <head>
        <title>Teste 1</title>
    </head>
    <body>
       <h1>Ola Mundo</h1>
       <p>Eu sou o site1.com</p>
    </body>
</html>

Criar um arquivo index.html para o domínio site2.com:

sudo nano /var/www/site2.com/public_html/index.html

Digite no arquivo:

<!DOCTYPE html>
<html>
    <head>
        <title>Teste 2</title>
    </head>
    <body>
       <h1>Ola Mundo</h1>
       <p>Eu sou o site2.com</p>
    </body>
</html>

Criar o arquivo que habilita do domínio site1.com pela porta http (80):

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

Digite no arquivo:

<VirtualHost *:80>
    ServerAdmin webmaster@site1.com
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Criar o arquivo que habilita do domínio site2.com pela porta http (80):

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

Digite no arquivo:

<VirtualHost *:80>
    ServerAdmin webmaster@site2.com
    ServerName site2.com
    ServerAlias www.site2.com
    DocumentRoot /var/www/site2.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Habilite os dois sites e desabilite o 000-default.conf:

sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
sudo a2dissite 000-default.conf

Instalando o bind9, para habilitar o domínio no servidor local

sudo apt install bind9

Colocar no arquivo de configuração named.conf.local a zona de acesso para o site1.com e site2.com:

sudo nano /etc/bind/named.conf.local

Digite:

zone "site1.com" {
    type master;
    file "/etc/bind/zones/site1.com.db";
};
zone "site2.com" {
    type master;
    file "/etc/bind/zones/site2.com.db";
};

Criar o diretório para armazenar o arquivo de zona de acesso:

sudo mkdir /etc/bind/zones

Criar o arquivo de zona de acesso para o site1.com:

sudo nano /etc/bind/zones/site1.com.db

Digite os seguinte texto, onde está escrito <IP-local>, digitar o endereço IP local da máquina:

$TTL 86400
@    IN SOA ns1.site1.com. admin.site1.com. (
          2023092501
          3600
          1800
          604800
          86400)
@    IN  NS    ns1.site1.com.
@    IN  A     <IP-local>
www  IN  A     <IP-local>
ns1  IN  A     <IP-local>

Criar o arquivo de zona de acesso para o site2.com

sudo nano /etc/bind/zones/site2.com.db

Digite os seguinte texto, onde está escrito <IP-local>, digitar o endereço IP local da máquina:

$TTL 86400
@    IN SOA ns1.site2.com. admin.site2.com. (
          2023092501
          3600
          1800
          604800
          86400)
@    IN  NS    ns1.site2.com.
@    IN  A     <IP-local>
www  IN  A     <IP-local>
ns1  IN  A     <IP-local>

Checar se está OK:

sudo named-checkconf
sudo named-checkzone site1.com /etc/bind/zones/site1.com.db
sudo named-checkzone site2.com /etc/bind/zones/site2.com.db

Alterar o arquivo de configuração, resolv.conf:

sudo nano /etc/resolv.conf

Mude o item nameserver apontando para o endereço IP local da máquina:

nameserver <IP-local>

Atualize o apache2 e o bind9:

sudo systemctl reload apache2
sudo systemctl restart bind9

Intalar o SSL autoassinado (HTTPS)

Para habilitar o SSL Autoassinado do site1, execute o seguinte comando:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/site1.com.key -out /etc/ssl/certs/site1.com.crt

Irá aparecer algumas opções para você digitar. Quando aparecer o item Common Name, digitra o domínio, como no exemplo abaixo:

Common Name: site1.com

Para habilitar o SSL Autoassinado do site2, execute o seguinte comando:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/site2.com.key -out /etc/ssl/certs/site2.com.crt

Irá aparecer algumas opções para você digitar. Quando aparecer o item Common Name, digitra o domínio, como no exemplo abaixo:

Common Name: site2.com

Faça uma cópia do site1.com.conf para site1.com-ssl.conf:

sudo cp /etc/apache2/sites-available/site1.com.conf /etc/apache2/sites-available/site1.com-ssl.conf

Faça uma cópia do site2.com.conf para site2.com-ssl.conf:

sudo cp /etc/apache2/sites-available/site2.com.conf /etc/apache2/sites-available/site2.com-ssl.conf

Editar o arquivo site1.com-ssl.conf:

sudo nano /etc/apache2/sites-available/site1.com-ssl.conf

Faça a seguinte modificação:

<VirtualHost *:443>
    ServerAdmin webmaster@site1.com
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/site1.com.crt
    SSLCertificateKeyFile /etc/ssl/private/site1.com.key
</VirtualHost>

Editar o arquivo site2.com-ssl.conf:

sudo nano /etc/apache2/sites-available/site2.com-ssl.conf

Faça a seguinte modificação:

<VirtualHost *:443>
    ServerAdmin webmaster@site2.com
    ServerName site2.com
    ServerAlias www.site2.com
    DocumentRoot /var/www/site2.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/site2.com.crt
    SSLCertificateKeyFile /etc/ssl/private/site2.com.key
</VirtualHost>

Habilite o SSL:

sudo a2enmod ssl

Habilite os sites em SSL:

sudo a2ensite site1.com-ssl.conf
sudo a2ensite site2.com-ssl.conf

Atualize o apache2 e o bind9:

sudo systemctl reload apache2
sudo systemctl restart bind9

Teste em um navegador:

https://site1.com
https://site2.com

Atualizado em: 03/05/2024 por Nelson H. Koshoji