Tutorial: Como criar os seus próprios certificados SSL - Pplware
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.
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:
Passo 2) Criar o nosso próprio certificado, usando o comando abaixo:
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:
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
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.
Passo 6) Criação de um link simbólico do ficheiro ssl:
Passo 7) Editamos o ficheiro SSL usando o nano (ou outro editor):
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":
Passo 10) Por fim ativamos o modulo SSL e reiniciamos o Apache:
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.
Tags: ApachecertificadosLinuxSSL
Próximo artigo Pplware é Media Partner do concurso Robô Bombeiro IPGuarda
Artigo anterior Blocks, o relógio modular está prestes a chegar
Acho importante acrescentar ao artigo que se alguem quiser um certificado ssl completamente gratuito para qualquer plataforma e automaticamente aceite pelos browsers recomendo https://letsencrypt.org/
este é um projeto inovador e com suporte de todos os players de peso na industria. estou até admirado que ainda nao tenha sido feito um artigo sobre este projeto que ja funciona ha alguns meses.
Isso dava um excelente artigo aqui!
Bom tutorial para entender o processo. Mas para certificados gratuítos e confiáveis: https://letsencrypt.org/
Obrigado pela dica do letsencrypt. Não conhecia 🙂
A malta não liga muito a isto dos certificados mas se tiverem um site recomendo a compra de um certificado de uma entidade oficial e nunca um certificado autogerado
11 de Junho de 2016 às 16:53
A tua informação revela que tens um conhecimento enorme na matéria…
Olha que J tem razão. Isto que foi mostrado aqui é um certificado de teste ou de desenvolvimento. Um certificado a sério deve ser validado até à base. Estes certificados autogerados devem ser apenas para testes.
letsencrypt, para a proxima ja sei onde vou tk.
21 de Fevereiro de 2017 às 20:12
Como a maioria das operações é feita no diretório /etc/apache2/ssl, para simplificar, diminuindo o tamanho das linhas de comando, deveria haver um passo onde esse diretório é posto como de trabalho (work dir). Além disso os diversos comando são feitos pelo super-usuário (root), o que está implícito pelo uso do comando sudo, ao virar root direto, poupa-se a digitação disso também.
2) mkdir -p /etc/apache2/ssl
3) cd /etc/apache2/ssl
4) openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.pem
5) ln -sf apache.pem $(openssl x509 -noout -hash < apache.pem).0
6) chmod 600 apache.pem
PVH Digital says:
Muito interessante, cara. Eu estava procurando um texto sobre isso, pois me questionei se é só as grandes empresas que podem fazer isso. Agora clareou a mente.
E quem tem um site alojado num servidor pago e que não tem acesso ao Linux para executar essas linhas de comando como fazer?