Stock photo of woman with wiwi eyes
Linux

LINUX -DHCP, APACHE2, SSH

  1. Introdução
  2. Configurar interfaces de rede
  3. Configurar acesso por SSH
  4. Instalar o isc-dhcp-server
  5. Configurar o servidor DHCP e verificar seu funcionamento
  6. Criação das Pools
  7. Processo de atribuição de IP
  8. Criar Pools específicas filtrando por fabricante
  9. Instalar o Apache
  10. Editar página padrão
  11. Criar novo Virtual Host
  12. Criar certificados e habilitar https

Introdução

O objetivo desse trabalho é ter uma instalação do Ubuntu Server 20.04 configurada com o ISC-DHCP-SERVER fornecendo IPs para várias redes diferentes para diferentes finalidades, e também uma configuração básica do Apache2.

O servidor deverá fornecer IPs para vários grupos de máquinas, com Pools exclusivas para cada grupo, com os dispositivos sendo identificados de maneiras diferentes pelo servidor, pelo hostname ou pelo MAC address.

Também será configurado o webserver Apache2 que irá servir páginas com e sem segurança.

Configurar interfaces de rede

Durante o processo de instalação do Ubuntu Server podemos configurar as interfaces de rede disponíveis, durante a instalação dessa máquina dispomos de duas interfaces, uma usada para acessar a internet e outra que se ligará às outras máquinas.

O nome das interfaces pode variar de máquina para máquina, dependendo da interface que usam para se ligar ao computador, e de como estão identificadas na BIOS, caso não haja identificação de localização física e esteja ligada através de uma interface PCI, são identificados por ensX, onde X indica o índice do adaptador, caso exista indicação da localização física das ligações o formato é enpXsY, onde X é o número do BUS e Y é o número do dispositivo naquele BUS, e em alguns casos, quando um adaptador de rede tem mais do que uma porta, ele irá aparecer como enpXsYfZ, onde Z indica o índice da porta.

No caso de virtualização e interfaces virtuais, a apresentação poderá ser diferente de acordo com o hypervisor a ser utilizado, por exemplo, no caso do VirtualBox, as interfaces são apresentadas como enpXsY, enquanto no VMware, normalmente, como ensX, e o número da interface irá variar de acordo com os dispositivos adicionador à máquina virtual, e caso o arquivo de configuração da máquina virtual seja editado manualmente, é possível alterar o nome da interface para que em vez de mostrar ensX, mostre enpXsY, mas para isso é preciso experimentar um pouco, e ter sempre em conta que nem todos os números estão disponíveis.

Quanto a configuração dos IPs das interfaces, irei fazer a configuração da interface que terá acesso à internet durante a instalação do sistema, e a interface que irá se ligar às máquinas cliente depois do sistema ter sido instalado, para mostrar duas maneiras diferentes de o fazer.

Durante a instalação serão mostradas todas as interfaces de rede disponíveis, nesse caso temos duas, a primeira é a que está conectada e que tem acesso à internet, e é essa que iremos configurar para dar um IP estático, já que nesse momento tem um IP atribuído por DHCP, e nenhum servidor deve ter IP atribuído por DHCP, e sim utilizar um IP fixo.

Selecione a interface que deseja alterar o IP e aperte Enter, depois selecione Edit IPv4 e aperte Enter novamente, depois selecione Manual e aperte enter, aqui você deve preencher de acordo com a rede em que a máquina está conectada, depois selecione Save e clique em Enter, depois Done e aperte Enter novamente, com isso a configuração da primeira placa está feita, a configuração da segunda placa será feita depois de terminada a instalação.

Network Connections
Network Connections

 

Edit IPv4
Edit IPv4

 

Manual IPv4 Configuration
Manual IPv4 Configuration

Depois de completar a instalação vamos configurar o IP da segunda interface.

As versões mais recentes do Ubuntu usam o netplan como ferramenta de gestão de rede, que guarda as configurações  das interfaces em um arquivo .yaml que fica em /etc/netplan.

Netplan configuration file
Netplan configuration file

Abra esse arquivo com o seu editor de texto preferido.

Netplan configuration file
Netplan configuration file

Aqui podemos ver as configurações das duas interfaces disponíveis no sistema, a primeira mostra as configurações que fizemos durante a instalação, a segunda mostra apenas que está configurada para receber um IP por DHCP, no caso dessa segunda interface, precisamos apenas configurar o IP dela, não é necessário configurar gateway nem DNS, por isso apenas duas novas linhas serão suficientes.

Netplan configuration file
Netplan configuration file

Não é preciso apagar a linha indicando que a interface irá receber um IP por DHCP, pode apenas a comentar para que não seja interpretada pelo sistema, e logo abaixo dela coloque as duas linhas mostradas na imagem acima, depois disso salve e feche esse arquivo de configuração.

Entretanto, apenas isso não é suficiente para que as configurações entrem em vigor, é preciso aplicar essas alterações, isso é feito com o comando netplan apply, executado como root.

IP addresses
IP addresses

Como podemos ver, originalmente a interface enp0s19 não tinha um endereço IPv4, depois de aplicar as configurações ela passou a ter um endereço IPv4.

Configurar acesso por SSH

Comece por selecionar a opção para instalar o servidor OpenSSH durante a instalação, isso fará com que o servidor possa ser acessado por SSH logo que for terminada a instalação, entretanto iremos usar uma porta diferente, para isso será necessário fazer algumas alterações em sua configuração.

Para isso abra o arquivo /etc/ssh/sshd_config como root, iremos precisar alterar apenas uma linha da configuração, na linha 15, retire o # para a ativar e altere o 22 para 12200, isso fará com que o servidor SSH passe a receber conexões na porta 12200 em vez da porta 22, que é a tradicional para esse serviço.

Original sshd_config file
Original sshd_config file

 

Altered sshd_config
Altered sshd_config

Depois disso é preciso reiniciar o serviço para que as alterações entrem em efeito, para isso use o comando service ssh restart como root, agora já é possível se conectar através da porta 12200.

tcpdump ssh 12200
tcpdump ssh 12200

Na imagem acima podemos ver uma captura do início de uma conexão SSH na porta 12200.

Para permitir conexões SSH através dessa porta com o firewall ativo é preciso primeiro abrir essa porta, para isso utilize o comando ufw allow 12200/tcp

E aqui podemos ver os sockets TCP que estão ativos no servidor nesse momento assim como as sessões SSH estabelecidas, seus números e os IPs dos clientes conectados, e também a configuração atual do firewall, mostrando que a porta 12200 está aberta.

Connections and Firewall
Connections and Firewall

Instalar o isc-dhcp-server

Instale o isc-dhcp-server com o comando apt install isc-dhcp-server, após alguns instantes ele estará pronto para ser configurado.

O arquivo de configuração se chama dhcpd.conf e se encontra na pasta /etc/dhcp/.

DHCP configuration file location
DHCP configuration file location

 

DHCP Server configuration file
DHCP Server configuration file

É nesse arquivo que iremos configurar o servidor e criar as pools que fornecerão endereços de IP para os dispositivos ligados na rede.

A documentação do isc-dhcp-client pode ser encontrada nesse link:
https://kb.isc.org/docs/en/isc-dhcp-44-manual-pages-dhcp-options

Configurar o servidor DHCP e verificar seu funcionamento

Vamos primeiro confirmar que o servidor DHCP está funcionando, para isso é só criar uma configuração básica e verificar que os clientes estão recebendo IPs corretamente, isso pode ser feito adicionando as seguintes linhas no final desse arquivo de configuração.

DHCP Server configuration file - Test Pool
DHCP Server configuration file – Test Pool

Com isso já podemos verificar se os clientes estão recebendo IPs corretamente.

DHCP Leases
DHCP Leases

 

Client01 receiving IP address
Client01 receiving IP address

 

Client02 receiving IP address
Client02 receiving IP address

Como podemos ver, os clientes estão recebendo IPs corretamente, com isso podemos continuar o processo de configuração do servidor DHCP e criar as Pools adequadas.

Criação das Pools

As Pools irão agrupar os clientes de acordo com características em comum, para isso é preciso primeiro criar as classes que irão fazer essa distinção entre os clientes, que por sua vez serão utilizadas pelas diferentes Pools para identificar os clientes que farão parte delas, vamos começar pelos clientes identificados por seus hostnames.

DHCP Class
DHCP Class

Com isso temos uma classe que irá identificar todos os clientes com um hostname começado por 304PC, agora iremos criar a Pool  que irá usar essa classe como identificador.

DHCP Pool
DHCP Pool

Já temos a primeira Pool criada, depois de reiniciar o servidor DHCP e apagar o arquivo /var/lib/dhcp/dhcpd.leases, vamos agora testar com alguns clientes para confirmar que a Pool está funcionando corretamente.

Vamos começar por monitorar a lista de leases com o comando watch -n 1 dhcp-lease-list

DHCP Leases
DHCP Leases

Aqui podemos ver os dois clientes que receberam endereços de acordo com as regras da Pool.

304PC01
304PC01

E aqui podemos ver um dos clientes com o IP atribuído pelo servidor.

304PC02
304PC02

E aqui o outro cliente também com um IP atribuído.

Vamos criar outra classe e Pool seguindo o mesmo formato, entretanto usando identificadores e configurações diferentes, nesse caso será para os PCs da sala 3.05, que terão como hostnames 305PCXX e receberão IPs de uma faixa de IPs diferentes, nesse caso será de 10.17.05.0 até 10.17.05.255.

DHCP Config
DHCP Config

Aqui podemos ver as duas classes criadas e as duas Pools que as utilizam.

Depois de salvar a nova configuração e reiniciar o servidor, os clientes devem passar a receber IPs da nova Pool, se verificar através da lista the leases os novos clientes já devem estar lá com seus respectivos IPs.

Lease List
Lease List

 

305PC01
305PC01

 

305PC02
305PC02

E com isso podemos ver que os PCs estão recebendo IPs corretamente.

Agora que já verificamos que as Pools estão funcionando, vamos terminar de criar o resto das classes e Pools para as salas, com as máquinas identificadas pelos hostnames, mas dessa vez limitando o número de IPs de 256, como está configurado nesse momento, para 25 por Pool.

A nossa configuração deve ficar assim:

class "Sala3.04" {
      match if substring(option host-name,0,5) = "304PC";
}

class "Sala3.05" {
      match if substring(option host-name,0,5) = "305PC";
}

class "Sala3.06" {
      match if substring(option host-name,0,5) = "306PC";
}

class "Sala3.07" {
      match if substring(option host-name,0,5) = "307PC";
}

class "Sala3.08" {
      match if substring(option host-name,0,5) = "308PC";
}

class "Sala3.12" {
      match if substring(option host-name,0,5) = "312PC";
}

class "Sala3.14" {
      match if substring(option host-name,0,5) = "314PC";
}

class "Sala3.16" {
      match if substring(option host-name,0,5) = "316PC";
}

class "Sala3.17" {
      match if substring(option host-name,0,5) = "317PC";
}

class "Sala3.18" {
      match if substring(option host-name,0,5) = "318PC";
}

class "Sala4.01" {
      match if substring(option host-name,0,5) = "401PC";
}

class "Sala4.02" {
      match if substring(option host-name,0,5) = "402PC";
}

class "Sala4.03" {
      match if substring(option host-name,0,5) = "403PC";
}

class "Sala4.04" {
      match if substring(option host-name,0,5) = "404PC";
}

class "Sala4.05" {
      match if substring(option host-name,0,5) = "405PC";
}

class "Sala4.06" {
      match if substring(option host-name,0,5) = "406PC";
}

subnet 10.0.0.0 netmask 255.0.0.0 {
       pool {
            range 10.17.04.0 10.17.04.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.04";
       }

       pool {
            range 10.17.5.0 10.17.5.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.05";
       }

       pool {
            range 10.17.6.0 10.17.6.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.06";
       }

       pool {
            range 10.17.7.0 10.17.7.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.07";
       }

       pool {
            range 10.17.8.0 10.17.8.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.08";
       }

       pool {
            range 10.17.12.0 10.17.12.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.12";
       }

       pool {
            range 10.17.14.0 10.17.14.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.14";
       }

       pool {
            range 10.17.16.0 10.17.16.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.16";
       }

       pool {
            range 10.17.17.0 10.17.17.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.17";
       }

       pool {
            range 10.17.18.0 10.17.18.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala3.18";
       }

       pool {
            range 10.17.101.0 10.17.101.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala4.01";
       }

       pool {
            range 10.17.102.0 10.17.102.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala4.02";
       }

       pool {
            range 10.17.103.0 10.17.103.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala4.03";
       }

       pool {
            range 10.17.104.0 10.17.104.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala4.04";
       }

       pool {
            range 10.17.105.0 10.17.105.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala4.05";
       }

       pool {
            range 10.17.106.0 10.17.106.24;
            option domain-name-servers 10.255.255.253,8.8.8.8;
            option routers 10.255.255.254;
            default-lease-time 7200;
            max-lease-time 14400;
            allow members of "Sala4.06";
       }
}

Processo de atribuição de IP

Agora vamos ver um exemplo de comunicação do processo de atribuição de IP.

DORA
DORA

Aqui temos a transação completa mostrando as quatro mensagens, Discover, Offer, Request e Acknowledgment ou ACK, abaixo podemos ver os campos que identificam o servidor.

Offer - Server
Offer – Server

E aqui podemos ver a lista de leases mostrando IPs fornecidos para máquinas de duas classes diferentes.

DHCP Leases
DHCP Leases

E se fizermos um novo pedido temos as seguintes mensagens trocadas entre cliente e servidor.

DHCP Release
DHCP Release

Aqui podemos ver que a primeira comunicação é um pedido de Release, depois é iniciado o processo DORA novamente e é atribuído um novo IP.

Criar Pools específicas filtrando por fabricante

Se usar o comando dhcp-lease-list para ver os leases atuais, vai ver que logo na primeira linha é mencionado um arquivo de texto para se obter os nomes dos fabricantes, e que esse arquivo deve ser baixado para /usr/local/etc/oui.txt, tenha atenção que a URL que é mostrada não está correta, a localização atual desse arquivo é http://standards-oui.ieee.org/oui/oui.txt, faça o download desse arquivo para a localização mencionada para obter mais informações sobre as máquinas.

Depois disso vamos adicionar uma nova classe para dispositivos HP que serão filtrados pelo seu MAC Address, e usando essa classe criar uma Pool exclusiva para esses dispositivos.

DHCP Class filtered by MAC
DHCP Class filtered by MAC

Essa classe de nome HP irá filtrar todos os dispositivos com MAC Addresses começados por 80:E8:2C e os colocar nessa classe, que por usa vez será utilizada para identificar em qual Pool de endereços esse dispositivo será colocado.

DHCP Leases
DHCP Leases

E aqui podemos ver que um equipamento teve um IP atribuído com sucesso da Pool destinada a equipamentos HP.

Agora que confirmamos que as configurações estão corretas, vamos criar outra classe e Pool para equipamentos Lexmark.

DHCP Classes
DHCP Classes

 

DHCP Leases
DHCP Leases

E como podemos ver, os dois clientes receberam IPs com sucesso e também tiveram seus fabricantes identificados corretamente, e abaixo temos as entradas no syslog referentes às transações DHCP dos dois dispositivos.

Syslog
Syslog

Vamos agora criar Pools para mais equipamentos, nesse caso para smarphones Samsung, Huawei e Crapple, as Pools terão as seguintes faixas de IPs:

  • Samsung: 10.51.1.1 – 10.51.1.5
  • Huawei: 10.51.1.6 – 10.51.1.10
  • Crapple: 10.51.1.11 – 10.51.1.15

A configuração deve ficar dessa maneira:

Smartphone DHCP Classes and Pools
Smartphone DHCP Classes and Pools

E se conectarmos dispositivos desses fabricantes e dermos uma olhada na lista de leases iremos os encontrar dessa maneira:

Lease list
Lease list

E se desligarmos o servidor DHCP, temos o seguinte tráfego quando os clientes tentam renovar seus leases:

tcpdump lease renew
tcpdump lease renew

E abaixo podemos ver o tráfego de clientes renovando seus leases enquanto outro cliente tenta obter um lease sem sucesso, já que a Pool de endereços disponíveis para essa classe de aparelhos já está cheia.

Unsuccessful attempt
Unsuccessful attempt

Instalar o Apache

Vamos agora instalar o Apache e o php, para isso use o comando apt install apache2 libapache2-mod-php php -y
Com isso o Apache e php devem estar instalados e podemos verificar o estado do serviço apache2.

Apache2 service status
Apache2 service status

Entretanto, se tentarmos acessar a página padrão do Apache com o firewall ativo teremos um timeout, por isso é preciso abrir essas portas no firewall.

Com a instalação do Apache um novo perfil de aplicação foi adicionado nas configurações do firewall, fazendo com que seja mais simples abrir as duas portas necessárias de uma só vez, isso é possível de ser feito com o seguinte comando ufw allow "apache full"

Allowing Apache through the firewall
Allowing Apache through the firewall

Com isso já podemos acessar a página padrão através do IP do servidor.

Apache2 Default Page
Apache2 Default Page

Editar página padrão

Vamos agora editar essa página para mostrar algo diferente.

Por definição, ela fica localizada em /var/www/html, lá irá encontrar um documento chamado index.html, mude seu nome para index.html.bak, depois crie um novo documento com o nome de index.html e dentro dele coloque o seguinte conteúdo por enquanto:

<!DOCTYPE HTML>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title></title>
  </head>
  <body>
  </body>
</html>

Essa é a estrutura básica de uma página html, vamos começar por dar um título para essa página, entre as tags title coloque o título desejado, se salvar o documento fizer um reload na página através do navegador verá que agora temos uma página em branco com o título que foi colocado anteriormente, entretanto, a página em si não tem conteúdo nenhum.

Vamos colocar um pouco de php nessa página, entretanto, primeiro é preciso mudar a sua extensão de .html para .php, caso contrário o servidor não irá executar nenhum código php que esteja na página.

Depois de feita essa alteração, abra o documento index.php, dentro das tags body coloque o seguinte:

<?php
  include 'datahora.php';
?>

O conteúdo do documento deve ficar assim:

<!DOCTYPE HTML>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Servidor do Pedro</title>
  </head>
  <body>
    <?php
      include 'datahora.php';
    ?>
  </body>
</html>

Essa nova adição fará com que quando a página seja carregada, um documento chamado datahora.php seja também carregado e seu conteúdo seja executado nesse local específico da página, entretanto, como esse documento ainda não existe, continuaremos vendo uma página em branco.

Crie um novo documento chamado datahora.php e coloque o seguinte conteúdo nele:

<?php
  echo "<p>SERVIDOR DO PEDRO</p>";
  echo "<p>Data e Hora atual: ".date('Y-m-d H:i:s').".</p>";
?>

Salve e carregue novamente a página, vai ver que agora temos conteúdo na página.

Vamos também adicionar uma imagem, abra o documento index.php e logo acima do início do bloco de código php que adicionamos coloque o seguinte:

<img src='cinel.png' alt='logo do cinel'>

O atributo src indica o caminho da imagem, nesse caso o nome do arquivo da imagem é cinel.png e está no diretório raíz da página e o atributo alt contém um texto alternativo para a imagem, para o caso de ela não ser carregada, e com isso a página agora fica assim:

Apache default website
Apache default website

Outra coisa interessante, se o documento php que foi criado anteriormente for acessado diretamente teremos quase a mesma página, mas dessa vez sem o título e a imagem.

datahora.php
datahora.php

Vamos agora habilitar conexões seguras, para isso use os seguintes comandos:

a2enmod ssl
a2ensite default-ssl.conf
service apache2 restart

Agora, se acessarmos o site por https já temos a nossa conexão encriptada.

Encrypted connection
Encrypted connection

Criar novo Virtual Host

Vamos agora criar um novo virtualhost, para isso, dentro da pasta /etc/apache2/sites-available crie uma cópia do arquivo 000-default.conf com um nome ilustrativo do site a ser criado, nesse caso o domínio utilizado será tbfinal.local, por isso o nome do arquivo ficará como tbfinal-local.conf, depois disso abra esse novo arquivo de configuração como root.

Precisaremos alterar uma linha e adicionar outra. Na linha onde temos a diretiva DocumentRoot, altere a localização atual de /var/www/html para /var/www/tbfinal, que vai ser onde iremos colocar os arquivos html e php desse novo site.

Abaixo dessa linha que acabamos de alterar coloque a diretiva ServerName tbfinal.local, salve e recarregue o serviço apache2.

tbfinal.local Virtual Host configuration
tbfinal.local Virtual Host configuration

Com a configuração criada, agora crie a pasta onde o site ficará hospedado, ela ficará em /var/www/tbfinal, como configuramos anteriormente, depois disso copie da pasta /var/www/html os arquivos index.php, datahora.php e a imagem para a pasta /var/www/tbfinal, depois disso abra o arquivo index.php para fazermos algumas alterações, para que não fique igual ao do site padrão.

<!DOCTYPE HTML>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Servidor do Pedro - Trabalho Final</title>
  </head>
  <body>
    <h1>Trabalho Final da UFCD 5115</h1>
    <img src='cinel.png' alt='Logo do Cinel'>
    <?php
      include 'datahora.php';
    ?>
  </body>
</html>

E abaixo podemos ver um excerto da comunicação entre o servidor e o cliente, com um pedido GET onde podemos ver o domínio que foi solicitado ao servidor.

tcpdump Apache
tcpdump Apache

Criar certificados e habilitar https

Primeiro vamos gerar o certificado, para isso use o comando openssl req -x509 -nodes -days 180 -newkey rsa:2048 -keyout mysitename.key -out mysitename.crt

Depois de criar o certificado e a chave, os mova para seus diretórios correspondentes, o certificado, com a extensão .crt, vai para a pasta /etc/ssl/certs, e a chave privada, com a extensão .key, vai para o diretório /etc/ssl/private, certifique-se de que ambos arquivos pertencem ao user root, e que o grupo a que a chave pertence é o ssl-cert.

Generating certificate
Generating certificate

 

Changing ownership
Changing ownership

 

Moving key and certificate
Moving key and certificate

Com isso a chave e certificado já estão armazenados nos locais certos, agora é preciso criar um novo virtualhost para o site tbfinal.local que funcionará por https, o processo é o mesmo que foi feito anteriormente, crie uma cópia da configuração default-ssl.conf com um nome relevante e edite essa cópia, altere o DocumentRoot apropriadamente e adicione a diretiva ServerName.

Agora é preciso selecionar os certificados que acabaram de ser criados, as alterações serão feitas nas diretivas SSLCertificateFile e SSLCertificateKeyFile, aponte a primeira para o certificado com a extensão .crt e a segunda para a chave com a extensão .key, depois disso é preciso recarregar as configurações.

Virtual Host configured
Virtual Host configured

Depois de feitas as configurações necessárias e o reload do serviço apache2, se acessarmos o site https://tbfinal.local veremos que ele tem um certificado, e se abrirmos o certificados poderemos ver suas informações.

https site
https site

 

Certificate
Certificate

E na imagem abaixo podemos ver todos os sockets que estão à escuta depois das configurações feitas no servidor.

Sockets listening
Sockets listening

Leave a Reply

Your email address will not be published. Required fields are marked *