Ativando SSL no Apache 2
Publicado por Thiago Alves em 12/11/2004
[ Hits: 115.248 ]
Blog: http://www.seeufosseopresidente.com.br
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
Comunidade de Software Livre de Goiás Ouvindo WMA no XMMS (xmms-wma) Instalando o mldonkey mesmo com os servidores oficiais offline Qmail - monte o seu próprio servidor de e-mail Leitura recomendada
Aviso de conectividade limitada [Resolvido] Instalando o plugin flash-player no Linux Instalando o Mozilla Firefox 3 no Debian Lenny Seu Gmail no Live Bookmark do Firefox Ferramenta de tradução rápida em seu Firefox 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.
[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 ? PatrocínioSite hospedado pelo provedor RedeHost.
DestaquesArtigosCompartilhando a tela do Computador no Celular via Deskreen Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota Configuração para desligamento automatizado de Computadores em um Ambiente Comercial DicasEfeito "livro" em arquivos PDF Como resolver o erro no CUPS: Unable to get list of printer drivers Flatpak: remover runtimes não usados e pacotes Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2 TópicosComo atualizar o Debian 8 para o 10 (10) Dica sobre iptables ACCEPT e DROP (6) NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29) Top 10 do mês
Scripts[Python] Automação de scan de vulnerabilidades [Python] Script para analise de superficie de ataque [Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem [Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!) [Shell Script] Script para adicionar bordas às imagens de uma pasta |