Erreur de Configuration D'Apache SSL (Erreur de connexion SSL))

J'essaie de configurer Apache sur mon serveur pour qu'il fonctionne avec ssl, mais chaque fois que je visite mon site, je reçois le message suivant dans mon navigateur:

erreur de connexion SSL. Impossible de faire une connexion sécurisée au serveur. Il peut s'agir d'un problème avec le serveur ou d'un certificat d'authentification de client que vous n'avez pas. Erreur 107 (net:: ERR_SSL_PROTOCOL_ERROR): erreur de protocole SSL.

Le message d'erreur ci-dessus semble être originaire Google Chrome. Cependant, même si les messages sont différents, ssl pour le site ne fonctionne sur aucun navigateur.

juste un aperçu de la situation: J'utilise Ubuntu 10.04 desktop edition. J'ai installé apache en installant Zend server (il a installé apache automatiquement). J'ai alors installé openssl. Les pages Non-https fonctionnent très bien sur le site. J'ai essayé d'obtenir des certificats d'essai de plusieurs sites de certificats mais rien ne fonctionne (même erreur). J'ai été précédemment l'hôte de mon site sur un autre serveur sur lequel ssl fonctionnait très bien. J'ai aussi essayé d'utiliser les fichiers clé et crt de ce serveur, mais j'ai eu la même erreur. Le nom de domaine et l'IP sont toujours les même. Mes fichiers SSLCertificateFile et SSLCertificateKeyFile pointent vers le répertoire et les fichiers corrects. Je n'ai pas non plus activé SSLVerifyClient.

Si quelqu'un a des suggestions, il serait très apprécié.

32
demandé sur user396404 2010-07-20 07:01:26

13 réponses

j'ai eu le même problème que @User39604, et j'ai dû suivre divers conseils. Puisqu'il ne se souvient pas du chemin précis qu'il a suivi, permettez-moi d'énumérer mon chemin:

  1. vérifiez si vous avez SSL oui en utilisant <?php echo phpinfo();?>

  2. si nécessaire

    A. activer ssl sur apache sudo a2enmod ssl

    B. installer openssl sudo apt-get install openssl

    C. vérifier si le port 443 est ouvert sudo netstat -lp

    D. si nécessaire, changer /etc/apache2/ports.conf, cela fonctionne

    NameVirtualHost *:80
    Listen 80
    
    <IfModule mod_ssl.c>
        # If you add NameVirtualHost *:443 here, you will also have to change
        # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
        # to <VirtualHost *:443>
        # Server Name Indication for SSL named virtual hosts is currently not
        # supported by MSIE on Windows XP.
        NameVirtualHost *:443
        Listen 443
    </IfModule>
    
    <IfModule mod_gnutls.c>
        Listen 443
    </IfModule>
    
  3. l'acquisition d'une clé et d'un certificat par

    A. payer une autorité de certification (Comodo, GoDaddy, Verisign) pour une paire

    B. la génération de votre propre* - voir ci-dessous (à des fins de test UNIQUEMENT)

  4. modifier votre configuration (en ubuntu12 /etc/apache2/httpd.conf - valeur par défaut est un fichier vide) inclut un <VirtualHost> (remplacez MYSITE.COM ainsi que la clé et le chemin de cert / nom pour pointer vers votre certificat et la clé):

    <VirtualHost _default_:443> 
    ServerName MYSITE.COM:443
    SSLEngine on
    SSLCertificateKeyFile /etc/apache2/ssl/MYSITE.COM.key
    SSLCertificateFile /etc/apache2/ssl/MYSITE.COM.cert
    ServerAdmin MYWEBGUY@localhost
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    
    
    ErrorLog ${APACHE_LOG_DIR}/errorSSL.log
    
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    
    CustomLog ${APACHE_LOG_DIR}/accessSSL.log combined
    
    </VirtualHost>
    

alors que beaucoup d'autres configurations virtualhost seront disponibles dans /etc/apache2/sites-enabled/ et /etc/apache2/sites-available/ c'était /etc/apache2/httpd.conf C'était CRUCIAL pour résoudre tous les problèmes.

pour d'autres info:

http://wiki.vpslink.com/Enable_SSL_on_Apache2

http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#selfcert

*la génération de votre propre certificat (auto-signé) se traduira par un certificat dont l'autorité ne sera pas reconnue par le navigateur de l'utilisateur. par conséquent, le navigateur va hurler meurtre sanglant et l'utilisateur aura à "comprendre les risques" une douzaine de fois avant que le navigateur ouvre la page. donc, ça ne fonctionne qu'à des fins de test. cela dit, Voici Le HOW-TO:

  1. allez dans le dossier d'apache (dans ubuntu12 /etc/apache2/)
  2. créer un dossier ssl (ou tout ce qui fonctionne pour vous, le nom n'est pas une exigence de système)
  3. Goto du répertoire choisi /etc/apache2/ssl
  4. exécuter sudo openssl req -new -x509 -nodes -out MYSITE.COM.crt -keyout MYSITE.COM.key
  5. utiliser MYSITE.COM.crt et MYSITE.COM.key dans votre <VirtualHost> la balise

le format du nom N'est pas dans un système strict l'exigence, doit être la même que le fichier :) - des noms comme 212-MYSITE.COM.crt,june2014-Godaddy-MYSITE.COM.crt devrait fonctionner.

33
répondu tony gil 2016-07-01 08:13:05

j'ai eu la même erreur dans chrome (et différente dans Firefox, IE). Aussi dans l'erreur.journal je recevais [error] [client cli.ent.ip.add] Invalid method in request \x16\x03 Suivre le formulaire d'instructions ce site j'ai changé ma configuration de:

<VirtualHost subdomain.domain.com:443>

   ServerAdmin admin@domain.com
   ServerName subdomain.domain.com

   SSLEngine On
   SSLCertificateFile conf/ssl/ssl.crt
   SSLCertificateKeyFile conf/ssl/ssl.key
</VirtualHost>

TO:

<VirtualHost _default_:443>

   ServerAdmin admin@domain.com
   ServerName subdomain.domain.com

   SSLEngine On
   SSLCertificateFile conf/ssl/ssl.crt
   SSLCertificateKeyFile conf/ssl/ssl.key
</VirtualHost>

Maintenant ça fonctionne :)

19
répondu Alex Okrushko 2012-04-30 16:00:33

Une cause commune, je voulais suggérer à cette situation:

parfois un client exécute Skype, qui utilise le port 443 sans s'en rendre compte. Quand ils vont démarrer Tomcat ou Apache, il semble démarrer mais ne peut pas se lier avec le port 443. C'est le message exact que l'utilisateur recevra dans le navigateur. Le correctif est d'arrêter ce qui fonctionnait sur le port 443 et redémarrer le serveur web pour qu'il puisse se lier avec le port 443.

le client peut redémarrer Skype après démarrer le serveur web, et Skype détectera que le port 443 est utilisé et choisira un port différent à utiliser.

6
répondu Michael Berman 2012-05-30 21:22:29
#Make sure that you specify the port for both http and https ie.
NameVirtualHost:80
NameVirtualHost:443
#and 
<VirtualHost *:80>
<VirtualHost *:443>

#mixing * and *:443 does not work it has to be *:80 and *:443
6
répondu Jeremy 2012-09-21 20:54:01

j'ai eu ce problème et la solution était un peu idiot.

J'utilise Cloudflare qui agit comme mandataire de mon site web. Afin de pouvoir me connecter via SSH, j'ai ajouté une entrée à mon

xxx.xx.xx.xxx  example.com

donc dans mon navigateur quand je suis allé à https://www.example.com, j'utilisais le proxy Cloudflare, et quand je suis allé àhttps://example.com j'allais directement au serveur. Parce que la configuration de Cloudflare ne vous oblige pas à ajouter les certificats intermédiaires, je voyais cette exception de sécurité dans mon navigateur quand je suis allé à https://example.com, mais https://www.example.com travaillait.

la solution: suppression de l'entrée de mon ordinateur portable /etc/hosts fichier.

Si ce n'est pas votre problème, je vous recommande d'utiliser l'un des nombreux en ligne SSL vérificateur d'outils pour essayer de diagnostiquer votre problème.

je recommande également d'utiliser ping pour vérifier l'adresse IP déclarée et la comparer à l'adresse IP attendue.

ping https://www.example.com/

une autre ressource très utile de SSL est le Mozilla SSL Configuration Generator. Il peut générer une configuration SSL pour vous.

2
répondu Dagmar 2017-10-08 09:53:44

Je ne savais pas ce que je faisais quand J'ai commencé à changer la configuration D'Apache. J'ai ramassé des morceaux et des morceaux qui pensaient que ça marchait jusqu'à ce que je tombe sur le même problème que vous avez rencontré, spécifiquement Chrome ayant cette erreur.

ce que j'ai fait, c'est commenter toutes les directives spécifiques au site qui sont utilisées pour configurer la vérification SSL, confirmer que Chrome m'a laissé entrer, passer en revue la documentation avant la directive avant d'en réactiver une, et redémarrer Apache. Par soigneusement va grâce à ceux-ci, vous devriez être en mesure de comprendre lequel(s) est à l'origine de votre problème.

Dans mon cas, je suis passé de ça:

SSLVerifyClient optional
SSLVerifyDepth 1
SSLOptions +StdEnvVars +StrictRequire
SSLRequireSSL On

de cette

<Location /sessions>
  SSLRequireSSL
  SSLVerifyClient require
</Location>

Comme vous pouvez le voir j'ai eu un bon nombre de modifications pour y arriver.

1
répondu Fitter Man 2010-12-03 20:59:16

je rencontre ce problème, parce que j'ai <VirtualHost> définie dans httpd.conf et httpd-ssl.conf.

dans httpd.conf, c'est défini comme

<VirtualHost localhost>

dans httpd-ssl.conf, c'est défini comme

<VirtualHost _default_:443>

le changement suivant a résolu ce problème, ajouter :80 dans httpd.conf

<VirtualHost localhost:80>
1
répondu Daniel 2013-04-19 16:30:42

comme pour les autres réponses, cette erreur peut se produire lorsqu'il n'y a pas de sites configurés pour utiliser SSL.

j'ai eu l'erreur quand je suis passé de Debian Wheezy à Debian Jessie. La nouvelle version D'Apache nécessite un fichier de configuration de site se terminant par .conf. Parce que mon fichier de configuration ne l'était pas, il était ignoré, et il n'y en avait pas d'autres configurés pour servir les connexions SSL.

1
répondu Andy Beverley 2015-06-10 13:52:55

j'ai rencontré ce problème, également dû à une mauvaise configuration. J'utilisais tomcat et dans le serveur.xml avait spécifié mon connecteur comme tel:

<Connector port="17443" SSLEnabled="true"
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keyAlias="wrong" keystorePass="secret"
           keystoreFile="/ssl/right.jks" />

Quand je l'ai fixée ainsi:

<Connector port="17443" SSLEnabled="true"
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keyAlias="right" keystorePass="secret"
           keystoreFile="/ssl/right.jks" />

Cela a fonctionné comme prévu. En d'autres termes, vérifiez que vous avez non seulement le droit de magasin de clés, mais que vous avez spécifié le bon alias dessous. Merci pour le précieux indice user396404.

0
répondu Lucas 2017-05-23 12:34:42

j'ai eu cette erreur lorsque j'ai suivi pour la première fois les instructions pour configurer la configuration par défaut apache2 ssl, en mettant un lien symbolique pour /etc/apache2/sites-available/default-ssl/etc/apache2/sites-enabled. J'ai ensuite essayé d'ajouter un autre NameVirtualHost sur le port 443 dans un autre fichier de configuration, et j'ai commencé à recevoir cette erreur.

Je l'ai corrigé en supprimant le /etc/apache2/sites-enabled/default-ssl symlink, et puis avoir ces lignes dans un autre fichier de configuration (httpd.conf, qui n'est probablement pas une bonne forme, mais qui a fonctionné):

NameVirtualHost *:443

<VirtualHost *:443>
  SSLEngine on
  SSLCertificateChainFile    /etc/apache2/ssl/chain_file.crt
  SSLCertificateFile    /etc/apache2/ssl/site_certificate.crt
  SSLCertificateKeyFile /etc/apache2/ssl/site_key.key
  ServerName www.mywebsite.com
  ServerAlias www.mywebsite.com
  DocumentRoot /var/www/mywebsite_root/


</VirtualHost>
0
répondu joseph_morris 2012-10-07 00:25:46

je l'ai résolu en commentant:

AcceptFilter https aucun

dans httpd.conf

selon: http://www.apachelounge.com/viewtopic.php?t=4461

0
répondu Jan Bolmeson 2013-05-06 20:29:36

C'est ce qui l'a corrigé pour moi sur Ubuntu.

  1. Activé le module: a2enmod ssl
  2. déplacement de tous les fichiers cert liés à un dossier /usr/local/ssl et il lisible par tout le monde: chmod -R +r /usr/local/ssl
  3. changé <VirtualHost *:80><VirtualHost *:*> dans mon hôte virtuel.
  4. Ajouté SSLEngine On avant toutes les autres directives SSL dans mon hôte virtuel.

si vous définissez une phrase de passe sur le cert, Apache devrait vous l'inviter à redémarrer.

0
répondu Znarkus 2014-08-04 13:49:27

il s'avère que le certificat SSL n'a pas été installé correctement. Re-installer correctement résolu le problème

-6
répondu user396404 2012-04-30 03:01:48