Pplware

Tutorial: Como criar os seus próprios certificados SSL

Nos dias que correm, é fundamental que todos os dados sensíveis, transaccionados entre um cliente (browser) e um servidor sejam cifrados de modo a que estes não possam ser entendidos por terceiros.

No caso dos servidores Web (entre outros serviços de uma rede), uma das formas de proceder à cifra dos dados é recorrendo ao protocolo SSL. Nesta área há empresas que vendem certificados, mas os utilizadores também podem criar os seus (apesar de não serem automaticamente reconhecidos pelos browsers).

O que é o SSL?

O SSL é um protocolo criptográfico baseado em cifras assimétricas (chave privada + chave pública), que tem como principal objectivo fornecer a segurança e integridade dos dados transmitidos em redes inseguras, como é o caso da Internet.

Quando um utilizador acede a um site que recorre ao SSL, o servidor envia ao cliente a chave pública deste para que esta possa cifrar a informação que vai ser passada ao servidor. Quando o servidor recebe essa informação, usa a sua chave privada para decifrar a informação transmitida pelo cliente.

Existem várias utilizações para este protocolo, como por exemplo o comércio electrónico, servidores Web, servidores FTP, etc. Para identificar facilmente se estão a visualizar um site seguro basta verificar no URL que em vez de estar o normal http:// se encontra https://-  Saber mais aqui.

Como criar os seus próprios certificados SSL?

Neste tutorial vamos mostrar como podemos criar o nosso próprio certificado SSL e integrá-lo no Apache. Para tal devem seguir os seguintes passos:

Passo 1) Criar uma pasta onde vai guardar o certificado gerado:

sudo mkdir -p /etc/apache2/ssl

Passo 2) Criar o nosso próprio certificado, usando o comando abaixo:

sudo openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem

Passo 3) Uma vez criado o certificado, vamos aprender como o referenciar na configuração do Apache. Para começar vamos criar um link simbólico do certificado:

sudo ln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0

Passo 4) Definir as permissões:

Vamos agora definir as permissões. Para este caso, vamos definir permissões de leitura e escrita para o dono do ficheiro do certificado

sudo chmod 600 /etc/apache2/ssl/apache.pem

Passo 5) Criação de um virtual Host:

A criação de Virtual Hosts no Apache permite que numa única máquina possamos ter vários sites, sendo que cada um pode estar associado a um nome ou a um endereço IP.

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Passo 6) Criação de um link simbólico do ficheiro ssl:

sudo ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl

Passo 7) Editamos o ficheiro SSL usando o nano (ou outro editor):

sudo nano /etc/apache2/sites-available/ssl

No ficheiro indicamos onde se encontra o nosso certificado SSL criado.

<VirtualHost *:443>

SSLEngine On

SSLCertificateFile /etc/apache2/ssl/apache.pem

...

</VirtualHost>

Passo 9) Agora vamos ao ficheiro ports.conf e descomentamos a linha “Listen 443”:

sudo nano /etc/apache2/ports.conf

Passo 10) Por fim ativamos o modulo  SSL e reiniciamos o Apache:

sudo a2enmod ssl

sudo service apache2 restart

Passo 11) Testar:

Para testar, abrimos o brower e escrevemos https://localhost/, adicionamos o certificado, e de seguida confirmamos a excepção de segurança.

 

Como podemos ver pela imagem anterior, a ligação estabelecida ao servidor é segura, sendo usado o protocolo TLS.

Relativamente ao aviso “O certificado do servidor não é fidedigno” tal acontece porque o  browser não conhece a nossa autoridade de certificação. Para tal, no primeiro aviso basta que indiquem que confiam na  autoridade de certificação e que pretendem prosseguir. Caso a vossa distribuição não seja Debian-based, podem ver aqui como fazer.

Exit mobile version