
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.key
diretório deve ser legível apenas pelo root.
Passo 4:Agora você precisa editar httpd.conf
o 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 80
para 443
in /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 Redirect
diretiva 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.conf
e reinicie o Apache.
LoadModule ssl_module modules/mod_ssl.so
Listen 443