Ativando SSL no Apache 2
Publicado por Thiago Alves em 12/11/2004
[ Hits: 115.328 ]
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
Instalando e iniciando o Blackbox Comunidade de Software Livre de Goiás Ouvindo WMA no XMMS (xmms-wma) Leitura recomendada
Compartilhar internet pelo DHCP Problemas com microfone no Skype com o Conectiva SEGURO - Sistema Empresarial de Gestão de Usuários em Rede Onrails Página inicial do Google com seu nome PHP - Fatal error: Allowed memory size of bytes exhausted [Resolvido] 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.
DestaquesArtigosEnviar mensagem ao usuário trabalhando com as opções do php.ini Meu Fork do Plugin de Integração do CVS para o KDevelop Compartilhando 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 DicasCompartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil Criando uma VPC na AWS via CLI TópicosTem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15) Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0) Pendrive não formata de jeito nenhum (4) Top 10 do mês
Scripts |