Mot de passe SSL au redémarrage d'apache2

33

J'ai installé un certificat SSL générique de Godaddy sur Apache2. Chaque fois que le serveur redémarre, il demande la phrase secrète de la clé privée du certificat SSL.

Quelle est la meilleure façon de supprimer cet obstacle aux redémarrages, car lorsque le redémarrage de la rotation du fichier journal se produit au milieu de la nuit, le serveur ne se remet pas en veille, et je reçois un appel client malheureux le matin, car il s'agit d'un serveur partagé .

ryw
la source
5
Bien que la question ait été résolue, permettez-moi d'ajouter: La rotation du fichier journal ne nécessite pas de redémarrage. Un rechargement suffira et vous n'aurez pas besoin de présenter vos informations d'identification.
Jan Jungnickel
Merci Jan - bon point - je ne sais pas vraiment pourquoi la tranche redémarre - semble se produire environ une semaine plus
tard,

Réponses:

28

Pour que Apache reçoive le mot de passe à chaque redémarrage, ajoutez ceci au fichier httpd.conf:

SSLPassPhraseDialog exec:/path/to/passphrase-file

dans votre fichier de phrase secrète:

#!/bin/sh
echo "passphrase"

et rendre le fichier de phrase secrète exécutable:

chmod +x passphrase-file
eau fraîche
la source
1
travaillé pour moi aussi! : D
markcial
5
N'oubliez pas de définir les autorisations appropriées sur le script contenant la phrase secrète , sinon vous avez effectivement supprimé toute sécurité fournie par la phrase secrète. (Vous devez également définir les autorisations appropriées sur la clé, comme décrit dans la réponse de Max).
voretaq7
6
Comment stocker la clé (avec mot de passe) avec 600 autorisations et ce script avec 700 autorisations plus sûr que de simplement stocker la clé sans mot de passe avec 600 autorisations étant donné que le propriétaire des deux fichiers doit être un utilisateur root, n'est-ce pas?
Zelanix
5
Je suis d'accord; c'est une sécurité inutile. Bien sûr, supprimez une phrase secrète d’une clé pour les redémarrages automatisés; mais ne pensez pas que vous puissiez en aucune façon récupérer la perte de sécurité que vous venez de faire. Il est souvent un bon compromis, mais il est un compromis.
MadHatter soutient Monica le
Pour être complet, le lien vers la documentation Apache correspondante: httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslpassphrasedialog
alk
29

Vous devez supprimer le cryptage de votre fichier de clé privée comme suit:

openssl rsa -in server.key -out server.key.new

mv server.key.new server.key

Assurez-vous que le nouveau fichier de clé est uniquement lisible par l'utilisateur root. Sinon, toute personne ayant un accès shell à ce serveur pourra récupérer la clé privée et emprunter l'identité de votre serveur.

Pour que la clé ne soit lisible que par root, faites 'chmod 600 server.key.new' avant de permuter les clés.

Max Alginin
la source
J'ai essayé votre idée, toujours le défi sur sudo ./apache2 restart :(
ryw
4
+1 parce que ce n'est pas une "idée", c'est une procédure réelle
tête de code
J'ai utilisé le terme "idée" parce que cela ne fonctionnait pas pour moi.
Ryw
2
Comment la phrase secrète rend-elle un certificat SSL plus sûr si vous pouvez le supprimer aussi facilement sans exiger la phrase secrète? (ou vous demande-t-il le mot de passe?)
user2693017
3
@ user2693017 - La commande openssl décrite ici demandera la phrase secrète de la clé privée chiffrée. Sans connaître le mot de passe, le supprimer ne fonctionnera pas.
Michael Paesold