Você está na página 1de 4

Certificado Digital no Apache

De ALOG - Wiki Suporte

Fala galera, vou explicar um pouco sobre certificados no apache (Linux)!

Resumindo:

- Cria o arquivo ‘.key’


- Com o arquivo ‘.key’ você cria o ‘.csr’
- Envia o ‘.csr’ para a certificadora (ou para o cliente, caso ele vá realizar o procedimento de solicitação do
arquivo ‘.crt’)
- O arquivo ‘.crt’ será enviado para o postmaster do domínio, caso você não tenha a senha do postmaster,
solicite ao mesmo que te envie o arquivo.
- Criar um novo Virtual Host no apache indicando os arquivos do certificado (‘.crt’ e ‘.key’)

Vamos aos passos:

O programa que vamos utilizar para realizar tais ações é o openssl.

Crie um diretório (/etc/apache/cert por exemplo) e entre no mesmo ( cd /etc/apache/cert).

1º Gerando o arquivo .key:


# openssl genrsa -out chaveprivada.key 4096

Recomendável gerar essa chave em 2048 bits pois a certificadora está exigindo

genrsa: gerar chave RSA


4096: tamanho da chave criptografada (4096 bits)
-out : “joga” para o arquivo chaveprivada.key (você escolhe o nome, preferencialmente com extensão a
extensão ".key")

Obs.: Não recomendamos a utilização de algoritmos na geração de chaveprivada.key. pelo fato do Apache não
conter um agente para introduzir senhas no caso de um restart involuntário e outros sinistros que possam
ocorrer.

2º Gerando o arquivo .csr:


# openssl req -new -key /<DIRETORIO>/chaveprivada.key -out solicitacao.csr

req: requisição de csr


-new: Novo
-key: você irá informar aonde esta a chave logo em seguida (caminha completo)
-out : “jogo” para o arquivo solicitação.csr (você escolhe o nome, porém, com extensão .csr)

Após você invocar o comando, começarão as perguntas:


1ª Qual a senha? (lembra do 123qwe lá em cima? É essa a senha)
2ª Country Name: 2 digitos do país ( ex: BR )
3ª State or Province Name: Estado - Nome completo ( ex: Rio de Janeiro )
4ª Locality Name: Cidade - Nome completo ( ex: Rio de Janeiro)
5ª Organization Name: Nome da empresa – idêntico ao do CNPJ (ex: Industrias ltda.)
6ª Organizational Unit Name: Departamento ( ex: Informatica )
7ª Common Name: URL do site que irá ter o certificado ( ex: www.industrias.com.br )
8ª Email Address: E-mail ( campo opcional )

Agora vêm questões de informações Extras:

1ª A challenge password: Deixe em branco


2ª An optional company name: Deixe em branco

Pronto, arquivo .csr gerado!

Dê um “cat” nesse arquivo:


# cat solicitação.csr
-----BEGIN CERTIFICATE REQUEST-----
MIICuTCCAaECAQAwXTELMAkGA1UEBhMCQlIxCzAJBgNVBAgTAlJpMQswCQYDVQQH
YXNkLmNvbS5icjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANXgnrYy
(...)
V3Z9TZAphoEH9qMWCvp9qJV9+jScP4oeV+5tVtr9lO9fTaXSt0Datdh07VFD5OdO
vB6elG6+4WGJmsWdPC6HvHtvRgc7XhXBwVepJ1Q=
-----END CERTIFICATE REQUEST-----

Copie do “-----BEGIN CERTIFICATE REQUEST-----’ até o ‘-----END CERTIFICATE REQUEST----


-“, salve no bloco de notas e envie o arquivo para o cliente ou para a certificadora.

Aguarde a resposta no e-mail com o arquivo ‘.crt’

Importe o arquivo para o servidor ( ou crie um novo arquivo e ‘cole’ os dados do ‘.crt’ )

Vamos ao Apache agora:

O padrão de criação de virtual hosts no apache é:

- Entrar no diretório sites-available


# cd /etc/apache2/sites-available

- Crie o virtual host

- Habilite o site com o seguinte comando:


# a2ensite site.com.br

Com isso um link será criado no diretório sites-enabled.

Vamos aos passos no Apache:

- Entre no diretório /etc/apache2/sites-available


- Crie um novo virtual host, porém, com um diferencial do padrão ( porta 80 ) ( se já existe um virtual host com
o nome de “site.com.br” crie um como “site.com.br-ssl”, por exemplo).

E coloque a seguinte configuração:

<VirtualHost www.industrias.com.br:443>

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile "/etc/apache/cert/arquivo.crt"

SSLCertificateKeyFile "/etc/apache/cert/chaveprivada.key"

ServerAdmin postmaster@industrias.com.br

DocumentRoot /var/www/industrias/

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

RewriteEngine on

ServerName www.industrias.com.br

ErrorLog /var/log/apache2/industrias.com.br-error.log

CustomLog /var/log/apache2/industrias.com.br-access.log combined

Options +Indexe

DirectoryIndex index.html index.htm index.php

</VirtualHost>

Obs: as linhas importantes para este arquivo são as 5 primeiras. As restantes, geralmente, são iguais ao arquivo
de configuração do virtual host padrão (porta 80).

Salve e saia!

Após isso, dê um reload no apache (# /etc/init.d/apache2 reload) e teste!

Comandos úteis do openssl:


• Gerar um pedido de certificado (CSR) baseado num certificado já existente:
# openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

• Gerar um certificado auto-assinado (self-signed):


# openssl req -x509 -nodes -days 365 -newkey rsa:1024 –keyout

• Remover a palavra-chave de uma chave privada:


# openssl rsa -in privateKey.pem -out newPrivateKey.pem
• Verificar um pedido de certificado (CSR):
# openssl req -text -noout -verify -in CSR.csr

• Verificar uma chave privada:


# openssl rsa -in privateKey.key –check

• Verificar um certificado:
# openssl x509 -in certificate.crt -text –noout

. Link para verificação do certificado:


# http://www.sslshopper.com/csr-decoder.html

Obtida de "http://wiki.alog.com.br/suporte/index.php/Certificado_Digital_no_Apache"

Esta página foi modificada pela última vez às 19h46min de 10 de outubro de 2011.

Você também pode gostar