Como configurar SSL no Apache?

Como configurar SSL no Apache?

Instalei o Apache no RHEL 6. Tudo está funcionando bem. O que todas as alterações e configurações devem ser feitas para usar https://localhost:443/.

Se eu alterar "Listen 80" para 443, ocorrerá um erro de conexão SSL

"Erro 107 (net::ERR_SSL_PROTOCOL_ERROR): erro de protocolo SSL."

Responder1

Se você estiver usando apache2, você deve fazer o seguinte:

Passo 1:Use OpenSSL para produzir as chaves usadas para proteger seu site. Essas chaves são usadas ao criptografar e descriptografar o tráfego do seu site seguro.

$ openssl genrsa -out mydomain.key 1024

Este comando criará uma chave privada de 1024 bits e a colocará no arquivo mydomain.key.

Passo 2:Gere seu próprio certificado.

$ openssl req -new -key mydomain.key -x509 -out mydomain.crt

Etapa 3:Mantenha a chave privada no diretório /etc/apache2/ssl.key/e o certificado no diretório /etc/apache2/ssl.crt/.

Observação:O ssl.keydiretório deve ser legível apenas pelo root.

Passo 4:Agora você precisa editar httpd.confo arquivo em /etc/apache2.

Agora este arquivo deve incluir conteúdo como este:

NameVirtualHost *:80
NameVirtualHost *:443
Listen 443

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain
ServerName www.mydomain.com
ServerAlias mydomain.com
</VirtualHost>


<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain-secure
ServerName mail.mydomain.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crt/mydomain.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/mydomain.key
</VirtualHost>


<Directory /srv/www/htdocs/mydomain-secure>
SSLRequireSSL
</Directory>


<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain
ServerName mail.mydomain.com
RedirectMatch permanent (/.*) https://mail.mydomain.com$1
</VirtualHost>

Responder2

Não mude Listen 80para 443in /etc/httpd/conf/httpd.conf. SSL está configurado em /etc/httpd/conf.d/ssl.conf. No RHEL 6, o SSL está habilitado e escutando por padrão com um certificado autoassinado.

Você pode acessar o site padrão usando SSL apenas navegando até https://localhost(não é necessário adicionar a porta ao final do URL).

Se você deseja encaminhar todas as solicitações HTTP para HTTPS (que é o que acredito que você está tentando alcançar), você pode adicionar um redirecionamento permanente ou usar o módulo Apache mod_rewrite.

A maneira mais fácil e segura é configurar um redirecionamento permanente. Habilite hosts virtuais nomeados e adicione uma Redirectdiretiva ao VirtualHost no arquivo /etc/httpd/conf/httpd.conf.

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName localhost
   Redirect permanent / https://localhost
</VirtualHost>

Usando mod_rewrite, você também cria um host virtual nomeado. Este não é o método recomendado, mas funcionará.

NameVirtualHost *:80
<VirtualHost *:80>
   # Enable the Rewrite engine
   RewriteEngine On
   # Make sure the connection is not already HTTPS
   RewriteCond %{HTTPS} !=on
   # This rewrites the URL and forwards to https
   RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

Se você deseja desativar o SSL, comente estas linhas /etc/httpd/conf.d/ssl.confe reinicie o Apache.

LoadModule ssl_module modules/mod_ssl.so
Listen 443

informação relacionada