quarta-feira, 19 de dezembro de 2012

Configuração de SSL no Apache

Esse post é sobre como gerar os certificados SSL no CentOS utilizando o OpenSSL e ativá-los no Apache para permitir conexões criptogradas ao seu servidor Web, para isso precisamos inicialmente instalar os pacotes necessários (caso ainda não estejam instalados):

# yum install mod_ssl openssl

Agora iremos gerar a chave privada:

# openssl genrsa -out ca.key 1024

Gere o arquivo CSR:
# openssl req -new -key ca.key -out ca.csr

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:BR
State or Province Name (full name) [Berkshire]:Rio de Janeiro
Locality Name (eg, city) [Newbury]:Rio de Janeiro
Organization Name (eg, company) [My Company Ltd]:Exemplo
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your servers hostname) []:www.exemplo.com
Email Address []:admin@exemplo.com

Please enter the following extra attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

OBS.: Common Name deverá ser a URL do serviço, nesse exemplo www.exemplo.com.

Assine o arquivo CSR utilizando a chave privada para gerar o certificado:

# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

Mova os arquivos para a localização correta:

# mv ca.crt /etc/pki/tls/certs
# mv ca.key /etc/pki/tls/private/ca.key
# mv ca.csr /etc/pki/tls/private/ca.csr

Caso não utilize Virtual Host no seu servidor Apache, basta alterar as linhas abaixo no arquivo de configuração do SSL:

# vim /etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

E reinicie o serviço:

# /etc/init.d/httpd restart

Caso utilize Virtual Host será necessário alterar o arquivo de configuração do Virtual Host ao invés do arquivo de configuração do SSL, abra o arquivo e adicione no início do arquivo:

# vim /etc/httpd/conf.d/meu_vhost.conf

NameVirtualHost *:443

E após a configuração do <VirtualHost *:80> adicione a entrada referente ao SSL:

# vim /etc/httpd/conf.d/meu_vhost.conf


SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

AllowOverride All

DocumentRoot /var/www/vhosts/exemplo.com/htdocs
ServerName www.exemplo.com

Feito isso reinicie o serviço:

# /etc/init.d/httpd restart

Pronto! Basta acessar seu servidor ou Virtual Host pelo seu navegador/browser preferido utilizando https para verificar o certificado criado!

Nenhum comentário: