web-dev-qa-db-fra.com

Connexion a refusé https sur Apache

Je cherche actuellement HTTPS sur l'un de mes sites et j'ai reçu un certificat d'essai d'une autorité de certification approuvée. J'ai traversé la liste de contrôle suivante:

  • Copié tous les fichiers certifiés en fonction des instructions de la CA
  • Activé mod_ssl sur Apache avec a2enmod ssl
  • Vérifié PHP a openssl activé
  • Fait un nouvel hôte virtuel à Apache à écouter 443
  • Entré les directives 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

  • Vérifié seulement Apache écoutait le port 443 avec lsof

  • Vérifiez localement et de mon propre PC avec telnet si je pouvais vous connecter à 443 (à l'adresse IP du serveur, pas de domaine; essayer de vous connecter à my-site.com:443 m'a donné Connect Connect)

Cependant, lorsque j'essaie de parcourir https://my-site.com (évidemment non le vrai domaine), je reçois une erreur "Connexion refusée". C'est ce que les journaux Apache:

[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)

Des idées pourquoi cela se produit?

Fichiers de configuration:

ports.conf

Listen 443
NameVirtualHost *:80
Listen 80

virtualhost config

<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>
7
Deniz Zoeteman

J'ai finalement réparé cela en remarquant que je n'avais pas installé mod_ssl.

Sudo yum install mod_ssl
4
Jack Nicholson

J'ai ajouté cela dans httpd.conf et redémarré Apache:

Listen 443

Et ça marche maintenant.

1
datasn.io

Comme vous avez créé un hôte virtuel, le SSL du nouvel hôte doit être différent du port 80, car vous avez activé SSL pour le port 80 via 443. Donc, pour un nouvel hôte virtuel, essayez avec 636 et voir.

1
user3592502

En utilisant une installation debian, je ne peux supposer que cela doit être la même raison que avec cet ubuntu bug .

Réorganiser les directives d'écoute dans /etc/apache2/sites-Available/default-sssl.conf résout la résolution de cela. patch

J'ai trouvé le problème - j'utilise le plan gratuit Cloudflare pour mon domaine, ce qui bloque activement toutes les connexions sur le port 443.

0
Deniz Zoeteman