web-dev-qa-db-fra.com

empêcher Apache de demander un mot de passe SSL à chaque redémarrage

En utilisant instructions de ce site mais en les modifiant un peu, j'ai créé une autorité de certification en utilisant -newca, j'ai copié cacert.pem dans ma maquette et importé en tant qu'émetteur de confiance dans IE. J'ai ensuite fait -newreq et -sign (note: je fais /full/path/CA.sh -cmd et pas sh CA.sh -cmd) et déplacé le certificat et la clé vers Apache.

J'ai visité le site en IE et en utilisant le code .NET et il semble fiable, génial (sauf si j'écris www. Devant ce qui est attendu). Mais chaque fois que je redémarre Apache, je dois taper mon mot de passe pour le (s) site (s?).

Comment puis-je faire en sorte que je n'ai PAS besoin de taper le mot de passe?

41
user274

Vous souhaitez supprimer la phrase secrète d'un fichier de clés. Lance ça:

openssl rsa -in key.pem -out newkey.pem

N'oubliez pas que cela signifie que toute personne disposant d'un accès physique au serveur peut copier (et ainsi abuser) de la clé.

64
Warner

J'ai été coupable d'avoir supprimé la phrase secrète de mes propres fichiers de clé dans le passé, car c'est la solution la plus simple, mais en termes de sécurité, ce n'est pas la meilleure idée. Une alternative consiste à fournir la phrase secrète à Apache. Vous pouvez le faire avec l'option SSLPassPhraseDialog dans votre httpd.conf (ou un autre fichier qu'il contient).

Si vous n'avez qu'un seul site SSL sur votre serveur, la forme la plus simple serait:

# either of these will work
SSLPassPhraseDialog |/path/to/passphrase-script
SSLPassPhraseDialog exec:/path/to/passphrase-script

Vous créeriez alors un script très simple appelé /path/to/passphrase-script qui contient quelque chose comme ceci:

#!/bin/sh
echo "put the passphrase here"

Au démarrage, Apache prendra la sortie de ce script et l'utilisera comme phrase secrète pour votre clé SSL. Si vous avez plusieurs sites SSL, SSLPassPhraseDialog a d'autres façons de l'utiliser, vous pouvez donc avoir soit un seul script pour toutes vos clés, soit un script distinct pour chacune , ou comme vous le souhaitez.

24
James Sneeringer

Pour supprimer le mot de passe d'un fichier PEM, vous pouvez procéder comme suit. Notez que les deux commandes sont requises dans le cas où la clé privée et le certificat public se trouvent dans le même fichier:

# you'll be prompted for your passphrase one last time
openssl rsa -in mycert.pem -out newcert.pem
openssl x509 -in mycert.pem >> newcert.pem

Cela va créer un fichier appelé "newcert.pem" qui est un fichier PEM sans mot de passe. Comme indiqué dans d'autres réponses, vous devez déterminer si c'est une bonne idée du point de vue de la sécurité avant de le faire.

Accroché d'ici

3
Brad Parks