Como configurar o ssl (https) para o seu site no Ubuntu Linux - Two way SSL

3

Eu tenho um site, o principal requisito é tornar esse site seguro usando https

Quando o cliente acessa de uma máquina diferente, ele só precisa funcionar se o certificado tiver sido carregado nas configurações do navegador. Se não, deve negar o acesso a esse site. Alguém pode me ajudar a conseguir isso?

Estou usando o Ubuntu 14.04 Deixe-me saber se você precisa de mais detalhes

    
por Rshrth 14.08.2014 / 08:47

1 resposta

8

Isso faz com que a documentação oficial do Apache (veja este link ) seja realmente bem feito sobre este assunto.

Em suma, você deve acabar com algo parecido com isto:

LoadModule ssl_module modules/mod_ssl.so

Listen 443
<VirtualHost *:443>
   DocumentRoot /var/www/yoursite/
   <Directory /var/www/yoursite/>
     AllowOverride All
     order allow,deny
     allow from all
   </Directory>

   ServerName www.example.com
   SSLEngine on
   SSLCertificateFile /path/to/www.example.com.cert
   SSLCertificateKeyFile /path/to/www.example.com.key

   SSLVerifyClient require
   SSLVerifyDepth 1
   SSLCACertificateFile /path/to/www.example.com.ca.crt
</VirtualHost>

Alguns detalhes acima

  • LoadModule ...: para carregar o módulo apropriado do Apache, contendo a implementação SSL
  • Ouça 443: o daemon do Apache irá escutar na porta HTTPS padrão, 443
  • DocumentRoot: onde os arquivos do seu site residem
  • ...: esta é a definição das opções para o diretório do seu site (há muito mais, as mencionadas aqui são as básicas para permitir o acesso de qualquer IP na Internet).
  • Nome do servidor: para exibir apenas URLs que contenham esse nome
  • SSLEngine on: ative os recursos do SSL neste site.
  • SSLCertificateFile: caminho o certificado X.509 da chave privada criada para este servidor.
  • SSLCertificateKeyFile: caminho para a chave privada criada para este servidor.
  • SSLVerifyClient requer: impor o servidor para solicitar ao cliente um certificado válido
  • SSLVerifyDepth 1: deve ser assinado diretamente pela CA mencionada na próxima instrução
  • SSLCACertificateFile: caminho o certificado X.509 da CA que assina os certificados usados pelos clientes.

Os certificados

Você terá que obter certificados válidos, um para o seu servidor e muitos outros para os clientes.

Para o servidor
Instale a ferramenta OpenSSL , se ainda não o fez: sudo apt-get install openssl .

Com esta ferramenta, você pode criar a chave privada do servidor:

openssl genrsa -des3 -out server.pass.key 2048

O comando acima cria uma chave privada com uma senha. Para ser carregado automaticamente pelo seu servidor, você precisa remover a senha:

openssl rsa -in server.pass.key -out server.key

Você tem agora uma chave privada de servidor válida em um arquivo, este é o arquivo apontado pela diretiva SSLCertificateKeyFile Apache.

A partir desta chave privada, você criará uma solicitação assinada por certificado (CSR):

openssl req -nodes -new -key server.key -out server.csr

Você será solicitado a inserir um conjunto de elementos (país, organização, ...). O mais importante será o Nome Comum (CN), ele deve corresponder ao nome do host do seu servidor da Web, aquele usado na URL. Então, no meu exemplo, é www.example.com .

Em seguida, você deve enviar este arquivo CSR ao seu provedor de certificado. Qualquer CA pública é boa. Depois de terem aprovado o seu pedido, eles lhe enviarão o famoso arquivo de certificado X.509 para o seu servidor. Este arquivo será apontado pela diretiva SSLCertificateFile do Apache.

Para o cliente
Você terá que fornecer um certificado válido para o cliente também. Com base no tipo de cliente (Linux, Windows, MAC, ...), o processo pode ser diferente.

Às vezes, para os certificados do cliente, toda a operação pode ser feita diretamente do navegador da web, visitando a página do registro da autoridade de certificação. Se feito diretamente do navegador da web, você tem certeza de que o certificado é automaticamente registrado no banco de dados de certificados do navegador da web.

Se for feito por um meio externo (como openssl no Linux), você terá que importar a chave privada e o arquivo de certificado para o armazenamento de certificados do seu navegador da web.

    
por Benoit 14.08.2014 / 10:01