Criando Certificado SSL - Apache
A seguir vou mostrar como criar certificados inválidos para testes de SSL no Apache.
É simples mas pode ser bem útil... tudo bem vai não é tão simples assim, mas com uma receita de bolo do site http://www.akadia.com/services/ssh_test_certificate.html facilita muito.
Passo 1 - Gerar a Chave Privada
Use a ferramenta openssl para gerar a RSA Private Key e a Requisição do Certificado que também pode ser usado para gerar certificados auto-assinados para testes e usos internos.
Para criar uma chave de 1024 bytes, triple DES e RSA execute o seguinte comando:
openssl genrsa -des3 -out server.key 1024
Passo 2 - Gerar o Certificado (CSR)
Com a chave privada gerada é possível gerar o certificado
Ele será enviado para uma autoridade certificadora para ser assinado, como a Thawte ou Verisign, e também pode ser auto-assinado que será nossa opção.
Para gerar a Requisição de Certificado execute o seguinte comando.
openssl req -new -key server.key -out server.csr
complete as informações necessárias onde Common Name é o nome FQDN da máquina que vai hospedar o site.
caso sua máquina chamar public.akadia.com
Country Name (2 letter code) [GB]:CH
State or Province Name (full name) [Berkshire]:Bern
Locality Name (eg, city) [Newbury]:Oberdiessbach
Organization Name (eg, company) [My Company Ltd]:Akadia AG
Organizational Unit Name (eg, section) []:Information Technology
Common Name (eg, your name or your server's hostname) []:public.akadia.com
Email Address []:martin dot zahn at akadia dot ch
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Passo 3 - Remover a Passphase da Chave.
Não é necessário, mas se não for feito será preciso digitar a passphrase toda hora que o apache reiniciar.
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
Passo 4 - Auto Assinando o nosso Certificado
Para gerar o nosso certificado válido por 365 dias execute o seguinte comando:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
o resultado deverá ser esse:
Signature ok
subject=/C=CH/ST=Bern/L=Oberdiessbach/O=Akadia AG/OU=Information
Technology/CN=public.akadia.com/Email=martin dot zahn at akadia dot ch
Getting Private key
Passo 5 - Instalando a chave privada e o certificado
Agora é só copiar as chaves para o local que será indicado no apache, não se esquece de habilitar o mod_ssl (a2enmod ssl)
cp server.crt /usr/local/apache/conf/ssl.crt
cp server.key /usr/local/apache/conf/ssl.key
Passo 6 - Configurando o SSL no Apache
Adicione essas linhas no arquivo de sites padrão, por exemplo default-ssl dentro de /etc/apache/sites-available/default-ssl
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Passo 7 - Reiniciar e testar o Apache
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
https://public.akadia.com
ou
https://seu.hostname.dominio
É simples mas pode ser bem útil... tudo bem vai não é tão simples assim, mas com uma receita de bolo do site http://www.akadia.com/services/ssh_test_certificate.html facilita muito.
Passo 1 - Gerar a Chave Privada
Use a ferramenta openssl para gerar a RSA Private Key e a Requisição do Certificado que também pode ser usado para gerar certificados auto-assinados para testes e usos internos.
Para criar uma chave de 1024 bytes, triple DES e RSA execute o seguinte comando:
openssl genrsa -des3 -out server.key 1024
Passo 2 - Gerar o Certificado (CSR)
Com a chave privada gerada é possível gerar o certificado
Ele será enviado para uma autoridade certificadora para ser assinado, como a Thawte ou Verisign, e também pode ser auto-assinado que será nossa opção.
Para gerar a Requisição de Certificado execute o seguinte comando.
openssl req -new -key server.key -out server.csr
complete as informações necessárias onde Common Name é o nome FQDN da máquina que vai hospedar o site.
caso sua máquina chamar public.akadia.com
Country Name (2 letter code) [GB]:CH
State or Province Name (full name) [Berkshire]:Bern
Locality Name (eg, city) [Newbury]:Oberdiessbach
Organization Name (eg, company) [My Company Ltd]:Akadia AG
Organizational Unit Name (eg, section) []:Information Technology
Common Name (eg, your name or your server's hostname) []:public.akadia.com
Email Address []:martin dot zahn at akadia dot ch
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Passo 3 - Remover a Passphase da Chave.
Não é necessário, mas se não for feito será preciso digitar a passphrase toda hora que o apache reiniciar.
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
Passo 4 - Auto Assinando o nosso Certificado
Para gerar o nosso certificado válido por 365 dias execute o seguinte comando:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
o resultado deverá ser esse:
Signature ok
subject=/C=CH/ST=Bern/L=Oberdiessbach/O=Akadia AG/OU=Information
Technology/CN=public.akadia.com/Email=martin dot zahn at akadia dot ch
Getting Private key
Passo 5 - Instalando a chave privada e o certificado
Agora é só copiar as chaves para o local que será indicado no apache, não se esquece de habilitar o mod_ssl (a2enmod ssl)
cp server.crt /usr/local/apache/conf/ssl.crt
cp server.key /usr/local/apache/conf/ssl.key
Passo 6 - Configurando o SSL no Apache
Adicione essas linhas no arquivo de sites padrão, por exemplo default-ssl dentro de /etc/apache/sites-available/default-ssl
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Passo 7 - Reiniciar e testar o Apache
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
https://public.akadia.com
ou
https://seu.hostname.dominio
Comentários
Postar um comentário