J'essaie de configurer SSL sur mon serveur Web apache2, mais il semble que cela ne fonctionne pas du tout.
J'ai suivi un tutoriel pour créer des fichiers cert avec openssl et configuré /etc/apache2/sites-available/default-ssl.conf
correctement.
Chaque fois que j'essaie d'ouvrir mon site Web avec https, mon navigateur refuse de se connecter en raison de problèmes de sécurité. Il indique que je n'ai pas configuré correctement mon site Web.
Dans mon /var/log/apache2/error.log
message, je reçois des avertissements qui indiquent que mon certificat de serveur n'inclut pas d'ID correspondant au nom du serveur.
[Mon Apr 10 11:03:24.041813 2017] [mpm_prefork:notice] [pid 1222] AH00169: caught SIGTERM, shutting down
[Mon Apr 10 11:03:30.566578 2017] [ssl:warn] [pid 661] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.579088 2017] [ssl:warn] [pid 1194] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.592958 2017] [mpm_prefork:notice] [pid 1194] AH00163: Apache/2.4.25 (Raspbian) OpenSSL/1.0.2k configured -- resuming normal operations
[Mon Apr 10 11:03:31.593136 2017] [core:notice] [pid 1194] AH00094: Command line: '/usr/sbin/apache2'
Avez-vous des idées sur la façon de résoudre ce problème? Merci à tous!
Réponses:
D'accord, j'ai remarqué que ce message est vu assez souvent récemment et il semble donc que beaucoup de gens sont confrontés au même problème que moi. Si c'est le cas, cela pourrait vous aider.
J'ai suivi un didacticiel simple étape par étape pour créer une certification SSL pour mon serveur Web. Comme tant de tutoriels, le résultat du tutoriel que j'ai suivi était un certificat auto-signé utilisant OpenSSL. Oui, auto-signé , c'était ça le problème. Le navigateur n'a pas pu faire confiance au serveur en raison de son certificat signé par lui-même. Et bien je ne ferais pas non plus ...
Un certificat doit être signé par une autorité de certification (CA) digne de confiance externe. Je suis donc tombé sur Let's Encrypt qui fait tout le travail pour vous et est encore plus facile à configurer et le meilleur est: c'est absolument gratuit.
Installation
1) Supprimez vos anciens fichiers cert SSL que vous avez créés en utilisant OpenSSL
2) Ouvrez les backports pour obtenir le client certbot sur Debian. Vous devez savoir que cela ouvrira un trou pour les logiciels inachevés! Installez uniquement les packages lorsque vous savez ce que vous faites.
3) Mettez à jour votre système Linux
4) Installez certbot
5) Configurer apache ServerName et ServerAlias
6) Modifier le fichier de configuration apache
7) Vérifiez la syntaxe correcte
8) Si le fichier de configuration semble correct, redémarrez le serveur apache
9) Configurez un certificat à l'aide de certbot et suivez les instructions à l'écran.
Renouvellement
Tous les certificats de Let's Encrypt sont valables 3 mois. Pour renouveler le, vous pouvez exécuter manuellement
Ou automatisez ce service en tant que tâche cron
et entrez la ligne suivante pour invoquer un renouvellement tous les lundis à 2h30.
Vous pouvez suivre un tutoriel plus détaillé ici: https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8
la source
Si vous ne voyez aucune autre erreur SSL et si vous avez essayé de définir «débogage LogLevel» dans le fichier httpd.conf, ce message d'erreur peut également suggérer que «Listen 443» est manquant dans le fichier httpd.conf.
la source
Ce ne sont pas des erreurs - ce sont des avertissements. Il est tout à fait possible d'exécuter mod_ssl avec un certificat qui ne correspond pas aux noms de serveur définis tant que vous avez un hôte ssl par défaut défini et que le nom commun sur le certificat correspond au nom d'hôte utilisé par les clients pour se connecter.
Ce dernier ne semble pas être vrai dans votre cas. Comme Jacob le dit, vous devez spécifier le nom d'hôte correct comme nom commun (ou un alias) lorsque vous créez un CSR .
Pour voir quel (s) nom (s) figure actuellement sur le certificat:
Si plusieurs certificats sont installés sur la machine et servis sur la même adresse IP, alors:
(où les valeurs $ {...} sont des espaces réservés que vous devez remplacer par les valeurs pertinentes).
la source
openssl s_client
montre le sujet et émetteur pour le cert des feuilles, qui est le seul vous avez besoin ici, sans-showcerts
, mais pour les certificats réels depuis environ 2010 (et les certificats de bricolage par des personnes compétentes ) ce que vous devez regarder n'est pas sujet mais l'extension SubjectAltName (SAN) et pour cela, vous avez besoinopenssl s_client -connect h:p [-servername h] | openssl x509 -noout -text
J'ai rencontré ce problème récemment, lorsque mon certificat auto-signé a expiré. J'ai recherché sur Google et copié la commande de création d'un nouveau certificat à partir d'un site Web.
Dans mon fichier de configuration apache: /etc/apache2/sites-available/default-ssl.conf. Le fichier de certificat et le fichier de clé font référence au nom de fichier suivant.
Par conséquent, l'erreur vue ici dans mon cas était plus facile à corriger, simplement en fournissant l'emplacement correct du fichier de clé de certificat lors de la création du certificat SSL.
Voici donc la commande que j'aurais dû utiliser et taper correctement.
la source
Dans mon cas, j'ai résolu ce problème en le remplaçant dans mon fichier de configuration apache ssl pour chaque domaine concerné:
par :
Parce que mon certificat est pour "www.mydomain.com" et non pour "mydomain.com"
fichier apache complet:
la source
Nous avons dû ajouter le ServerName et ServerAlias au fichier default-ssl, pas seulement le fichier conf pour le domaine spécifique.
Cela nous a débarrassé de l'erreur embêtante.
la source