Ativando SSL no Apache 2

Publicado por Thiago Alves em 12/11/2004

[ Hits: 115.271 ]

Blog: http://www.seeufosseopresidente.com.br

 


Ativando SSL no Apache 2



Nessa pequena dica vamos ver como ativar o suporte a SSL, ou seja, usar uma conexão segura HTTPS.

Após ter instalado o Apache2, usando entre os parâmetros do configure a opção --enable-ssl, vá até o diretório /usr/local/apache2/conf e edite o httpd.conf. Verifique se existem as linhas:

< IfModule mod_ssl.c>
Include conf/ssl.conf
< /IfModule>


Se tiver, OK. Saia do arquivo e agora edite no mesmo diretório o arquivo ssl.conf. Nesse arquivo vamos indicar onde ficarão as chaves para a criação da conexão segura.

Edite a linha:

SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt

Para ficar assim:

SSLCertificateFile /etc/ssl/apache2/server.crt

E também edite a linha:

SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key

Para ficar assim:

SSLCertificateKeyFile /etc/ssl/apache2/server.key

Antes de salvar e sair, edite as opções do SSL na parte onde está a configuração do virtual host:

DocumentRoot "/usr/local/apache2/htdocs/"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log

Edite da forma que achar conveniente. Agora vamos criar o diretório /etc/ssl/apache2 e entrar lá para criar as chaves:

# mkdir /etc/ssl/apache2
# cd /etc/ssl/apache2


Agora vamos criar a chave:

# openssl req -new > new.cert.csr

Vai aparecer algo semelhante a:
Generating a 1024 bit RSA private key
...............++++++
......++++++
writing new private key to \\\\\\\' privkey.pem\\\\\\\'

Enter PEM pass phrase:


Nessa parte informe uma senha, uma frase para que seja criado esse arquivo. Depois repita novamente e vá respondendo as perguntas que forem aparecendo. O próximo comando é:

# openssl rsa -in privkey.pem -out new.cert.key

Aqui você vai precisar informar a senha ou frase que você adicionou no primeiro comando acima.

# openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 1825

Pronto, agora foram criados os arquivos, vamos renomeá-los:

# cp new.cert.cert server.crt
# cp new.cert.key server.key


Depois disso vai estar tudo pronto, pare e inicie o Apache novamente usando o seguinte comando:

# /usr/local/apache2/bin/apachectl startssl

Agora acesse o seu servidor usando o endereço https://ip_do_servidor/ e assim ele vai informar o certificado e perguntar se vai aceitar. E esta pronto, ativado o suporte a ssl.

Qualquer duvida ou sugestão, mande um e-mail ou comente aí. :-)

Outras dicas deste autor

Script para iniciar o mldonkey facilmente

Instalando o mldonkey mesmo com os servidores oficiais offline

Qmail - monte o seu próprio servidor de e-mail

Compilando Apache2 + PHP5

Ouvindo WMA no XMMS (xmms-wma)

Leitura recomendada

Problemas de falta de pacotes resolvidos com o aMule

Instalar o Tim Web no Ubuntu 8.04 sem ter acesso a Internet

Música no Linux pela Rádio UOL

Bloqueando MSN por grupos - iptables + Squid

Modems Vivo Flash/Zap sem problemas de reconexão (OpenSuSE 10.2)

  

Comentários
[1] Comentário enviado por removido em 13/11/2004 - 17:00h

fala ae chefe.. parabéns pela sua dica... mais uma dúvida, essa navegação segura oque seria?, apartir do momento que o "usuario" aceita o certificado qual a difernça de ele estrar navegando num site que naum possui esse tal ssl?

Espero ter sido direto na pergunta rs.

abraços e no aguardo.

[2] Comentário enviado por cvs em 13/11/2004 - 19:18h

Toda informacão que trafegar entre o usuario e o site vai estar criptografada, pelo menos na teoria é assim, por isso que normalmente em webmail eles usam ssl, pode ver um exemplo no www.gmail.com

[3] Comentário enviado por adrianopm em 07/10/2005 - 11:15h

Caro Thiago,

Excelente artigo. tenho uma dúvida. Estou realizando alguns teste com o Suse Linux 9.2 Pro, instalei o apache2, openssl atraves do Yast. Fiz todas as configurações possíveis, fiz o comando apache configtest para ver se nada havia saido erro, tudo ok. Fiz os certificados e coloquei nos locais certos (Fiz isto duas vezes). Rodei o comando apache2 startssl. Listei as portas abertas, lá esta a https 443. Mas quando digito no navagador https://nomedomeuservidor/ ele diz que não foi possivel localizar o servidor, mas se faço http://nomedomeuservidor:443/ ele abre normal. Alguma ideia do que pode ter ocorrido?

Abraço, bom trabalho!
Fico no aguardo.

[4] Comentário enviado por thiagovb em 16/11/2005 - 23:59h

E ae blz cara. Bom, espero que esteja.

É o seguinte, eu fiz tudo certinho do jeito que vc colocou aqui no tutorial, (S.O = FreeBSD), só que quando digito esse comando:

# openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 1825

Ele diz que o diretório new.cert.csr não existe, que que pode estar acontecendo??? Se puder me responder agradeço muito.

Obrigado

Ab's

Theagao

[5] Comentário enviado por mrc5 em 05/01/2006 - 20:04h

Nossa MUITO BOA essa dica, consegui fazer tudo direitinho, tah funcionando tudo certinho. Isso vai me ajudar muito.
São dicas assim que ajudam muito a gente.
Obrigado

[6] Comentário enviado por ardaz em 27/01/2006 - 15:04h

Excelente. Muito bom artigo e muito bem explicado.

[7] Comentário enviado por ricardoas30 em 14/10/2009 - 14:05h

Olá colega, apesar de não testar a sua dica, já salvei e com certeza vou testa-la mais tarde. Mais realmente me surgiu uma dúvida em relação as chave geradas, pois eu utilizo uma VPN e já foram gerados certificados e chaves para esta VPN. no caso as chaves e certificados para o apache tem que ser gerado novamente ou posso utilizar as mesmas ??? Eu acredito que não, mais foi essa dúvida que me surgiu.

Obrigado.

[8] Comentário enviado por t0ddy em 10/12/2010 - 00:58h

Muuuuito obrigado \o

[9] Comentário enviado por wysuporte em 31/05/2011 - 23:03h

Eai professor, procurando aki como solucionar um problema aki no meu ssl e acho seu post aki, valeu, vo aproveitar e pesquisar um pouco mais.

[10] Comentário enviado por thigo.san em 10/05/2012 - 14:54h

Boa Tarde pessoal, tudo bem?

Estou configurando o apache na distribuição do "Fedora" na versão 16, a parte de instalação e configuração do SSL está funcionando muito bem, acesso meu sistema(redirecionamento para o JBoss) no HTTPS e no HTTP porém nesse sistema tenho WebServices e ao tentar acessa-los os mesmos apresenta o erro no browser informando "No client certificate chain in this request", isso no HTTPS. Se acessar um WebService que está na porta 80 ele acessa normalmente. Alguem já passou por esse problema ?

[11] Comentário enviado por dicarte em 06/10/2012 - 12:26h

Excelente a dica. Parabéns.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts