Pular para o conteúdo

Ativando SSL no Apache 2

Dica publicada em Linux / Internet
Thiago Alves cvs
Hits: 116.302 Categoria: Linux Subcategoria: Internet
  • Indicar
  • Impressora
  • Denunciar

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í. :-)

Instalando e iniciando o Blackbox

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

Compilando Apache2 + PHP5

Configure fácil seu modem Pctel

Instalando o mldonkey

Resolvendo o problema de instabilidade do imsniff

Squid 3 com bloqueio HTTPS

Warning: Could not modify /etc/ppp/pap-secrets: Permission denied

Jogando Xadrez através da Internet com o Linux

Gerenciando abas no Chrome/Chromium com XTABS

#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

Entre na sua conta para comentar.