web-dev-qa-db-fra.com

SSL installé sur Apache2 mais HTTPS ne fonctionne pas

J'ai récemment installé un certificat SSL sur mon serveur Amazon EC2 Ubuntu 12.04 (32 bits) exécutant Apache 2.

Lorsque je tente d'accéder à mon site via https, il ne se charge pas. Lorsque j'effectue une analyse nmap, je constate que le port 443 n'est pas ouvert.

J'ai essayé d'ouvrir le port 443 dans mes tables d'IP en vain. iptables -L yeilds

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

Voici comment j'ai installé ssl

J'ai modifié /etc/init.d/Apache2.conf pour inclure ssl.conf et modifié ssl.conf pour inclure les chemins d'accès Requis de mes fichiers de certificat, c'est-à-dire

SSLCertificateFile /path/fileSSLCertificateKeyFile /path/fileSSLCertificateChainFile/chemin/fichier

J'ai configuré mon groupe de sécurité pour autoriser les demandes entrantes à partir du port 443 (source TCP: 0.0.0.0/0)

Quand j'effectue le test suivant avec php

if (!extension_loaded('openssl')) 
{
  echo "not loaded";
}
else
{
  echo "loaded"   ;
}

Je suis "chargé".

Des idées?

19
rocketas

Dans httpd-ssl.conf, avez-vous Écouter 443

Sinon, essayez de l'ajouter et de redémarrer Apache.

22
mti2935

Commencez par vérifier si mod_ssl est activé. Sinon, activez-le en exécutant a2enmod ssl. Ensuite, vérifiez si Apache écoute sur le port 443 pour https. Ensuite, vérifiez si le pare-feu ne bloque pas le port 443. 

9
David Okwii

Dans httpd.conf, ce qui suit est désactivé par défaut:

# Secure (SSL/TLS) connections
# Include conf/extra/httpd-ssl.conf    

Supprimez simplement le # de l'inclusion et redémarrez Apache. 

5
Grettir Einarsson

Si vous pouvez vous connecter localement (par exemple avec telnet localhost 443 comme suggéré par mti), vérifiez si le pare-feu est configuré correctement. 

Dans mon cas, ufw bloquait tout, donc je devais ufw allow 443 qui corrigeait le problème sous-jacent au même symptôme.

3
Nick T

Je viens de rencontrer une situation où il y avait un processus d'écoute sur le port 443, le pare-feu était complètement ouvert, SELinux était désactivé et je toujours ne pouvais pas me connecter par telnet au port 443. Pas même de l'hôte local. J'ai continué à obtenir:

telnet 127.0.0.1 443
telnet: connect to address 127.0.0.1: Connection refused`

Il s'avère que la table iptables NAT contenait des règles qui redirigent le trafic entrant sur le port 443 vers un autre port (8443). Rien n'écoutait sur le port 8443.

# iptables --table nat --list
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:https redir ports 8443 

Supprimer les entrées NAT pertinentes a résolu le problème pour moi. 

0
Ferry Boender

Si les clés SSL ne sont pas définies (ou ont été commentées inexplicablement par les gremlins), Apache 2.2 SSL échouera en silence. Il n'y aura pas d'erreur dans le journal et il n'écoutera pas 443. Les sites http: 80 fonctionneront.

0
user3062014