Conexão recusada HTTPS no Apache

4

No momento, estou experimentando HTTPS em um dos meus sites e recebi um certificado de avaliação de uma CA confiável. Eu passei pela seguinte lista de verificação:

  • Copiado todos os arquivos do certificado de acordo com as instruções da CA
  • Habilitado mod_ssl no apache com a2enmod ssl
  • O PHP verificado tem o OpenSSL ativado
  • Fez um novo host virtual no Apache, ouvindo 443
  • Introduzidas as diretivas SSL:

    SSLEngine on

    SSLCertificateKeyFile /etc/ssl/ssl.key/server.key

    SSLCertificateFile /etc/ssl/ssl.crt/api_my_site_com.crt

    SSLCertificateChainFile /etc/ssl/ssl.crt/apimysite.com-bundle

  • Verificado apenas o apache estava ouvindo a porta 443 com lsof

  • Verifique localmente e a partir do meu próprio PC com o telnet se eu pudesse conectar-me ao 443 (para o IP do servidor, não do domínio; tentar conectar-se ao my-site.com:443 me deu falha na conexão)

No entanto, quando tento navegar para o link (obviamente, não o domínio real), recebo um erro de 'Conexão recusada'. Isto é o que o Apache registra:

[Sat Jul 20 22:50:34 2013] [info] Loading certificate & private key of SSL-aware server
[Sat Jul 20 22:50:34 2013] [info] Configuring server for SSL protocol
[Sat Jul 20 22:50:34 2013] [info] RSA server certificate enables Server Gated Cryptography (SGC)
[Sat Jul 20 22:50:34 2013] [info] [client ::1] Connection to child 0 established (server my-site.com:443)
[Sat Jul 20 22:50:34 2013] [info] Seeding PRNG with 656 bytes of entropy
[Sat Jul 20 22:50:34 2013] [info] [client ::1] SSL library error 1 in handshake (server my-site:443)
[Sat Jul 20 22:50:34 2013] [info] SSL Library Error: 336027900 error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol speaking not SSL to HTTPS port!?
[Sat Jul 20 22:50:34 2013] [info] [client ::1] Connection closed to child 0 with abortive shutdown (server my-site:443)

Alguma idéia do porquê isso está acontecendo?

Arquivos de configuração:

ports.conf

Listen 443
NameVirtualHost *:80
Listen 80

configuração virtualhost

<VirtualHost *:443>
DocumentRoot /var/www/mysite/sandbox/api
ServerName api.my-site.com
RewriteEngine on
RewriteRule ^/v1/* /v1/api.php [L]
RewriteRule ^/* /index.php [L]
<Directory "/var/www/mysite/sandbox/api">
allow from all
</Directory>
Options -MultiViews
ErrorDocument 404 /404.html
AddDefaultCharset utf-8
<IfModule mod_mime> 
AddCharset utf-8 .atom .css .js .json .rss .vtt .webapp .xml
</IfModule> 
<IfModule mod_rewrite> 
Options +FollowSymlinks
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule> 
<IfModule mod_autoindex> 
Options -Indexes
</IfModule> 
<IfModule mod_rewrite> 
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule> 
<FilesMatch "(^#.*#|\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|sw[op])|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
FileETag None
SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/server.key
SSLCertificateFile /etc/ssl/ssl.crt/api_my_site_com.crt
SSLCertificateChainFile /etc/ssl/ssl.crt/apimysite.com-bundle
ErrorLog /var/www/mysite/api.log
LogLevel info
</VirtualHost>
    
por Deniz Zoeteman 20.07.2013 / 23:03

4 respostas

1

Usando uma instalação Debian, eu só posso assumir que tem que ser a mesma razão que com este Ubuntu bug .

Reordenar as diretivas de escuta em /etc/apache2/sites-available/default-ssl.conf resolve isso. Patch

    
por 20.07.2013 / 23:30
1

Como você criou um host virtual, o SSL para o novo host deve ser diferente da porta 80, porque você ativou o SSL para a porta 80 via 443. Portanto, para o novo host virtual, tente com 636 e consulte.

    
por 27.08.2014 / 05:57
1

Eu finalmente consertei isso notando que não tinha instalado mod_ssl

sudo yum install mod_ssl
    
por 07.08.2016 / 10:59
0

Encontrei o problema - estou usando o plano Cloudflare Free para meu domínio, e isso está bloqueando ativamente todas as conexões na porta 443.

    
por 21.07.2013 / 01:06