J'essaie de configurer Apache sur mon serveur pour qu'il fonctionne avec SSL, mais chaque fois que je visite mon site, le message suivant s'affiche dans mon navigateur:
Erreur de connexion SSL. Impossible d'établir une connexion sécurisée au serveur. Cela peut être un problème avec le serveur ou peut nécessiter un certificat d'authentification 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 natif de Google Chrome. Cependant, même si les messages sont différents, SSL pour le site ne fonctionne sur aucun navigateur.
Quelques informations sur la situation: j’utilise Ubuntu 10.04 desktop edition
.
J'ai installé Apache
en installant zend server
( Apache a été installé automatiquement). J'ai ensuite installé openssl
. Les pages non-https fonctionnent correctement 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'hébergeais auparavant mon site sur un autre serveur sur lequel ssl fonctionnait parfaitement. J'ai également essayé d'utiliser la clé et le fichier de certification de ce serveur, mais j'ai la même erreur.
Le nom de domaine et l'adresse IP sont toujours les mêmes. Mon SSLCertificateFile
et SSLCertificateKeyFile
pointent vers le répertoire et les fichiers corrects.
De plus, SSLVerifyClient n'est pas activé.
Si quelqu'un a des suggestions, ce serait très apprécié.
J'ai eu le même problème que @ User39604 et je devais suivre VARIOUS conseils. Puisqu'il ne se souvient pas du chemin précis qu'il a suivi, laissez-moi énumérer mon chemin:
vérifiez si vous avez SSL OUI en utilisant <?php echo phpinfo();?>
si nécessaire
A. active ssl sur Apache Sudo a2enmod ssl
B. installez openssl Sudo apt-get install openssl
C. vérifie si le port 443 est ouvert Sudo netstat -lp
D. Si nécessaire, changez /etc/Apache2/ports.conf
, cela marche
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>
acquérir une clé et un certificat par
A. payant une autorité de certification (Comodo, GoDaddy, Verisign) pour une paire
B. générer votre propre * - voir ci-dessous (à des fins de test UNIQUEMENT)
changez votre configuration (dans ubuntu12 /etc/Apache2/httpd.conf
- default est un fichier vide) pour inclure un <VirtualHost>
_ (remplace MYSITE.COM
ainsi que la clé et le chemin/nom de certification pour pointer vers votre certificat et votre 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 de nombreuses autres configurations virtualhost seront disponibles dans /etc/Apache2/sites-enabled/
et en /etc/Apache2/sites-available/
c'était /etc/Apache2/httpd.conf
c'était CRUCIAL de résoudre tous les problèmes.
pour plus d'informations:
http://wiki.vpslink.com/Enable_SSL_on_Apache2
http://httpd.Apache.org/docs/2.0/ssl/ssl_faq.html#selfcert
* générer votre propre certificat (auto-signé) donnera un certificat dont le navigateur ne reconnaîtra pas l'autorité. Par conséquent, le navigateur criera au meurtre et l'utilisateur devra "comprendre les risques" une douzaine de fois avant que le navigateur n'ouvre réellement la page. alors, cela ne fonctionne qu'à des fins de test. cela dit, voici le HOW-TO:
/etc/Apache2/
)ssl
(ou tout ce qui fonctionne pour vous, le nom n'est pas une exigence du système)/etc/Apache2/ssl
Sudo openssl req -new -x509 -nodes -out MYSITE.COM.crt -keyout MYSITE.COM.key
MYSITE.COM.crt
et MYSITE.COM.key
dans votre <VirtualHost>
tagle format du nom N'EST PAS soumis à une exigence système stricte, il doit être identique au fichier :) - des noms tels que 212-MYSITE.COM.crt
, june2014-Godaddy-MYSITE.COM.crt
devrait marcher.
Je recevais la même erreur dans chrome (et une différente dans Firefox, IE). Aussi dans error.log, je obtenais [error] [client cli.ent.ip.add] Invalid method in request \x16\x03
En suivant le formulaire d'instructions ce site j'ai changé ma configuration FROM:
<VirtualHost subdomain.domain.com:443>
ServerAdmin [email protected]
ServerName subdomain.domain.com
SSLEngine On
SSLCertificateFile conf/ssl/ssl.crt
SSLCertificateKeyFile conf/ssl/ssl.key
</VirtualHost>
À:
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName subdomain.domain.com
SSLEngine On
SSLCertificateFile conf/ssl/ssl.crt
SSLCertificateKeyFile conf/ssl/ssl.key
</VirtualHost>
Maintenant ça fonctionne bien :)
Une cause commune que je voulais suggérer pour cette situation:
Parfois, un client exécute Skype, qui utilise le port 443 sans s’en rendre compte. Quand ils commencent à démarrer Tomcat ou Apache, il semble que le démarrage commence, mais ne peut pas se connecter au port 443. Il s’agit du message exact que l’utilisateur recevrait dans le navigateur. Le correctif consiste à arrêter ce qui était en cours d'exécution sur le port 443 et à redémarrer le serveur Web afin qu'il puisse se lier au port 443.
Le client peut redémarrer Skype après avoir démarré le serveur Web. Skype détecte alors que le port 443 est utilisé et choisit un autre port à utiliser.
#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
Étape pour activer SSL correctement.
Sudo a2enmod ssl
Sudo apt-get install openssl
Configurez le chemin des certificats SSL dans votre fichier de configuration SSL (default-ssl.conf) qui peut se trouver dans/etc/Apache2/sites-available. J'ai stocké des certificats sous/etc/Apache2/ssl /
SSLEngine On
SSLCertificateFile /etc/Apache2/ssl/certificate.crt
SSLCertificateChainFile /etc/Apache2/ssl/ca_bundle.crt
SSLCertificateKeyFile /etc/Apache2/ssl/private.key
Activer le fichier de configuration SSL
Sudo a2ensite default-ssl.conf
J'ai eu ce problème et la solution était un peu ridicule.
J'utilise Cloudflare, qui agit en tant que proxy sur mon site Web. Pour pouvoir vous connecter via SSH, j'ai ajouté une entrée à mon /etc/hosts
fichier donc je n'ai pas besoin de me souvenir de l'adresse IP de mon serveur.
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 sur le serveur. Étant donné que la configuration de Cloudflare ne nécessite pas l'ajout de certificats intermédiaires, je voyais cette exception de sécurité dans mon navigateur lorsque je suis allé sur https://example.com , mais https: //www.example.com fonctionnait.
La solution : supprimer 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 outils de vérification en ligne SSL pour essayer de diagnostiquer votre problème.
Je recommande également d'utiliser ping pour vérifier l'adresse IP rapportée et la comparer à l'adresse IP attendue.
ping https://www.example.com/
Le Générateur de configuration SSL de Mozilla est une autre ressource SSL très utile. Il peut générer une configuration SSL pour vous.
C’est ce qui a réglé le problème pour moi sur Ubuntu.
a2enmod ssl
/usr/local/ssl
et l'a rendu lisible par tout le monde: chmod -R +r /usr/local/ssl
<VirtualHost *:80>
à <VirtualHost *:*>
dans mon hôte virtuel.SSLEngine On
avant toutes les autres directives SSL de mon hôte virtuel.Si vous définissez une phrase de passe sur le certificat, Apache devrait vous y inviter au redémarrage.
Je ne savais pas ce que je faisais quand j'ai commencé à modifier la configuration d'Apache. J'ai ramassé des morceaux et pensé que cela fonctionnait jusqu'à ce que je rencontre le même problème que vous, plus précisément Chrome ayant cette erreur.
Ce que j'ai fait est de commenter toutes les directives spécifiques au site utilisées pour configurer la vérification SSL, de confirmer que Chrome me laisse entrer, d'examiner la documentation avant la directive avant de la réactiver, puis de redémarrer Apache. En les parcourant avec soin, vous devriez être en mesure de déterminer le ou les facteurs qui causent votre problème.
Dans mon cas, je suis passé de ceci:
SSLVerifyClient optional
SSLVerifyDepth 1
SSLOptions +StdEnvVars +StrictRequire
SSLRequireSSL On
pour ça
<Location /sessions>
SSLRequireSSL
SSLVerifyClient require
</Location>
Comme vous pouvez le constater, j'ai eu pas mal de changements pour y arriver.
Je rencontre ce problème, car j'ai <VirtualHost>
défini à la fois dans httpd.conf et httpd-ssl.conf.
dans httpd.conf, il est défini comme
<VirtualHost localhost>
dans httpd-ssl.conf, il est défini comme
<VirtualHost _default_:443>
La modification suivante a résolu ce problème, ajoutez 80 dans le fichier httpd.conf.
<VirtualHost localhost:80>
Semblable à d'autres réponses, cette erreur peut survenir quand aucun site n'est configuré pour utiliser SSL.
J'ai eu l'erreur lors de la mise à niveau de Debian Wheezy vers Debian Jessie. La nouvelle version d'Apache nécessite un fichier de configuration de site se terminant par .conf
. Comme mon fichier de configuration ne l’était pas, il était ignoré et aucun autre n’était configuré pour desservir les connexions SSL.
J'ai eu cette erreur quand j'ai suivi pour la première fois les instructions pour configurer la configuration ssl d'Apache2 par défaut, en mettant un lien symbolique pour /etc/Apache2/sites-available/default-ssl
dans /etc/Apache2/sites-enabled
. J'ai ensuite essayé par la suite d'ajouter un autre nom NameVirtualHost sur le port 443 dans un autre fichier de configuration et j'ai commencé à obtenir cette erreur.
Je l'ai corrigé en supprimant le /etc/Apache2/sites-enabled/default-ssl
symlink, puis ces lignes dans un autre fichier de configuration (httpd.conf, qui n’est probablement pas de bonne forme, mais 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>
J'ai rencontré ce problème, également en raison d'une mauvaise configuration. J'utilisais Tomcat et dans le fichier server.xml, j'avais spécifié mon connecteur en tant que 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 corrigé 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 bon magasin de clés, mais également que vous avez spécifié le bon alias sous celui-ci. Merci pour le précieux conseil ser396404 .
Je l'ai résolu en commentant:
dans httpd.conf