5.1.2. Apache2 + Ssl

Objectivo

A adição do suporte ssl ao servidor web permite o restabelecimento de ligação seguras e encriptadas entre o servidor e o cliente. Deste modo, é possível trocar passwords, com a certeza que esta não será capturada por terceiros.

É assim possível usar as ligações seguras como base para a implementação de outros serviços como, por exemplo, um serviço webmail.

Configuração

A configuração dos sites do apache2 estão guardadas em /etc/apache2/sites-available/. Para criar o novo site com suporte ssl, copiar a definição do site por defeito para efectuar em seguida as alterações necessárias:

server:~# cd /etc/apache2/sites-available/
server:/etc/apache2/sites-available# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Em seguida editar a configuração do novo site, indicando que a porta a utilizar é a 443 e quais os certificados a utilizar, que serão os que geramos previamente (Ver: 3.5. Certificados Ssl). A configuração é guardada no ficheiro /etc/apache2/sites-available/ssl:

NameVirtualHost *:443
<VirtualHost *:443>
        ServerAdmin webmaster@localhost

        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/server.crt
        SSLCertificateKeyFile /etc/ssl/private/server.key.insecure

# [...]

As ligações https são feitas pela porta 443, o que deve ser indicado no ficheiro /etc/apache2/ports.conf:

Listen 80
Listen 443

Em seguida, deve ser activado o módulo ssl:

server:# a2enmod ssl
Module ssl installed; run /etc/init.d/apache2 force-reload to enable.

E o novo site também deve ser activado:

server:~# a2ensite ssl
Site ssl installed; run /etc/init.d/apache2 reload to enable.

Finalmente, reiniciar o serviço:

server:~# /etc/init.d/apache2 restart

Verificação

Num browser, inserir o endereço do servidor (https://192.168.1.100). Após o aviso sobre o certificado auto assinado, deverá aparecer uma página:

apache2_ssl.png

Links relacionados


BlinkListblogmarksco.mmentsconnoteadel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoMa.gnoliaNewsVineNetvouzRedditSimpySpurlWistsYahooMyWebFacebook

Comentários

Anonymous (195.23.28.x) 1187864757|%e %b %Y, %H:%M %Z|agohover

Eu já tentei correr este tutorial e nada! O Apache não aceita conexões HTTPS (443).

# netstat -ln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::433 :::* LISTEN

Mas não abre nada :-S

unfold by Anonymous (195.23.28.x), 1187864757|%e %b %Y, %H:%M %Z|agohover
Anonymous (195.23.28.x) 1187865851|%e %b %Y, %H:%M %Z|agohover

# openssl s_client -connect localhost:443 -state -debug
connect: Connection refused
connect:errno=29

unfold by Anonymous (195.23.28.x), 1187865851|%e %b %Y, %H:%M %Z|agohover
Re:
Anonymous (81.253.37.x) 1188368061|%e %b %Y, %H:%M %Z|agohover

não terás nenhuma regra iptables a bloquear o acesso?

unfold Re: by Anonymous (81.253.37.x), 1188368061|%e %b %Y, %H:%M %Z|agohover
Criptografia ssl
Anonymous (200.222.247.x) 1195677470|%e %b %Y, %H:%M %Z|agohover

eu configurei na minha rede, o ssl + apache2, tem como fazer com que abra a pagina sem digitar
https://meusite.com.br e sim http://meusite.com.br.

nao encontrei nada relacionado.
meu email rb.moc.klen|ongam#rb.moc.klen|ongam.

vlw.

unfold Criptografia ssl by Anonymous (200.222.247.x), 1195677470|%e %b %Y, %H:%M %Z|agohover
Re: Criptografia ssl
PinguimRibeiroPinguimRibeiro 1195769834|%e %b %Y, %H:%M %Z|agohover

A primeira parte de uma url define o protocolo a utilizar: por isso o "s" do "https" informa o teu navegador que queres estabelecer uma ligação segura, pela porta 443. Uma url sem o "s" (http) é o indicador de uma ligação normal, não segura, pela porta 80.

O mesmo acontece quando queres aceder, por exemplo, a um servidor ftp: tens que indicar uma url tipo "ftp://meusite.com.br/", para que o diálogo entre o servidor e o cliente se faça na linguagem correcta e pela via correcta (porta 21)…

Abraço,
PinguimRibeiro

unfold Re: Criptografia ssl by PinguimRibeiroPinguimRibeiro, 1195769834|%e %b %Y, %H:%M %Z|agohover
Ssl no apache
Anonymous (200.199.177.x) 1195995643|%e %b %Y, %H:%M %Z|agohover

o PinguimRibeiro, eu entendi o que vc falou, mais tem como eu redirecionar o acesso ha porta http para
https, assim toda vez que alguen difitar http://meusite.com.br ser redirecionado para o
https://meusite.com.br

Obrigado, se tiver como me ajudar vou ficar muito grato, e o site ta show de bola, sempre ajudando
a comunidade do linux.

unfold Ssl no apache by Anonymous (200.199.177.x), 1195995643|%e %b %Y, %H:%M %Z|agohover
Re: Ssl no apache
PinguimRibeiroPinguimRibeiro 1196017107|%e %b %Y, %H:%M %Z|agohover

O apache tem um módulo que permite reescrever as urls, de acordo com as regras que quisermos. Basta que definas que, sempre que receber uma url começada por "http", esta seja reescrita para "https".

Na prática, tens que activar o módulo rewrite e editar o ficheiro de configuração do apache:

Para activar o módulo rewrite:

server:~# a2enmod rewrite

Editar o ficheiro de configuração /etc/apache2/sites-available/default:

<VirtualHost *>

        <IfModule mod_rewrite.c>
          <IfModule mod_ssl.c>
            RewriteEngine on
            RewriteCond %{HTTPS} !^on$ [NC]
            RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI}  [L]
          </IfModule>
        </IfModule>

#[...]

</VirtualHost>

e reiniciar o apache:

server:~#  /etc/init.d/apache2 restart

Abraço,
*PinguimRibeiro

last edited on 1196329502|%e %b %Y, %H:%M %Z|agohover by PinguimRibeiro + show more
unfold Re: Ssl no apache by PinguimRibeiroPinguimRibeiro, 1196017107|%e %b %Y, %H:%M %Z|agohover
Apache2 + ssl
Anonymous (200.199.177.x) 1196296631|%e %b %Y, %H:%M %Z|agohover

boa noite PinguimRibeiro.

eu fiz exatamente o que vc passou no topico acima, so que quando chamo a pagina
em http://meusite.com.br, nao apareçe nada, eu habilitei o modulo e inclui as linhas no meu virtual host.
vo posta aqui meu virtual host e se for possivel vc da uma olhadinha, eu to precisando muito solucionar este problema.

#NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerAdmin rb.moc.klen|ongam#rb.moc.klen|ongam
DocumentRoot /var/www/nelk
ServerName www.nelk.com.br
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
ServerSignature on
Alias /nelk /var/www/nelk

<Directory "/var/www/nelk/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
allow from all

AuthType Basic
AuthName "teste apache -Linux"
AuthUserFile /etc/passwords
Require valid-user

</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
</IfModule>
</IfModule>

vlw pinguin, abraço

unfold Apache2 + ssl by Anonymous (200.199.177.x), 1196296631|%e %b %Y, %H:%M %Z|agohover
Re: Apache2 + ssl
PinguimRibeiroPinguimRibeiro 1196329788|%e %b %Y, %H:%M %Z|agohover

Olá,

A tua configuração não está a funcionar porque as instruções para reescrever o endereço não estão dentro do bloco de configuração do teu virtualhost. Tenta assim:

#NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>

<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
</IfModule>
</IfModule>

ServerAdmin magno@nelk.com.br
DocumentRoot /var/www/nelk
ServerName www.nelk.com.br
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
ServerSignature on
Alias /nelk /var/www/nelk

<Directory "/var/www/nelk/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
allow from all

AuthType Basic
AuthName "teste apache -Linux"
AuthUserFile /etc/passwords
Require valid-user

</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

Abraço
PinguimRibeiro

unfold Re: Apache2 + ssl by PinguimRibeiroPinguimRibeiro, 1196329788|%e %b %Y, %H:%M %Z|agohover
Apache2 + ssl
Anonymous (200.97.158.x) 1196377150|%e %b %Y, %H:%M %Z|agohover

Iai pinguin…
eu coloquei a configuraçao desse jeito no meu apache, mais nao redireciona, so funciona se
digitar https://meudite.com.br.
ja verifiquei o meu arquivo virtualhost, o modulo ta rewrite ta habilitado.
sera que eu to fazendo algo de errado, tem outra foma de fazer esse redirecionamento.

obrigado pinguin
vlw pela atençao.

unfold Apache2 + ssl by Anonymous (200.97.158.x), 1196377150|%e %b %Y, %H:%M %Z|agohover
Re: Apache2 + ssl
PinguimRibeiroPinguimRibeiro 1196380285|%e %b %Y, %H:%M %Z|agohover

Olá
tenta usar rewrite_log para ver o que se passa:

NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>

<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
RewriteEngine on
RewriteLog "/var/log/apache2/rewrite_log"
RewriteLogLevel 2
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
</IfModule>
</IfModule>

# [...]

e verifica a saida em /var/log/apache2/rewrite_log.

Boa sorte
PinguimRibeiro

last edited on 1196380334|%e %b %Y, %H:%M %Z|agohover by PinguimRibeiro + show more
unfold Re: Apache2 + ssl by PinguimRibeiroPinguimRibeiro, 1196380285|%e %b %Y, %H:%M %Z|agohover
apache2 + ssl
Anonymous (200.222.247.x) 1196473325|%e %b %Y, %H:%M %Z|agohover

pinguin,
meu arquivo de log ta normal..
a pagina web, nao precisa ter nenhum redirecionamento;
ou sera que eu preciso mexer no meu dns..

vlw se tiver mais alguma dica..
obrigado.

unfold apache2 + ssl by Anonymous (200.222.247.x), 1196473325|%e %b %Y, %H:%M %Z|agohover
Nao consigo configurar o ssl
paulo (guest) 1244815621|%e %b %Y, %H:%M %Z|agohover

Caro amigo,

nao tou a conseguir configurar o ssl com o apache….

kaundo reinicio o serviço do apache aparece algum do tipo:

"Restarting Web server: apache2(98)Address already in use: make_sock: could not bind to address [ :: ] : 443

isso e normal?

e k pelo browser nao consigo aceder ao servidor

unfold Nao consigo configurar o ssl by paulo (guest), 1244815621|%e %b %Y, %H:%M %Z|agohover
Add a new comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License