web-dev-qa-db-fra.com

Comment faire en sorte qu'Apache 2 cesse de demander un mot de passe pour un certificat SSL?

Je viens d'ajouter un certificat SSL à Apache. Le problème est qu'Apache s'exécute au démarrage du système et qu'après la mise en marche de mon serveur, Apache s'exécute mais ne s'exécute pas. J'ai mis l'adresse IP de mon ordinateur et mon navigateur continue d'essayer de me connecter. Je vois un cercle en rotation.

Ensuite, j'arrive sur mon serveur, je tue tous les processus liés à Apache et j'exécute Sudo service Apache2 restart. En raison de Sudoname__, je suis invité à saisir mon mot de passe superutilisateur, mais après l'avoir entré, Apache demande le mot de passe pour le fichier .key. Je l'ai mis dans puis Apache fonctionne bien. Le SSL fonctionne même.

Alors, pourquoi Apache ne fonctionne-t-il pas jusqu'à ce que je le redémarre? Est-ce parce qu'il veut que je mette le mot de passe à chaque démarrage? Si oui, comment puis-je faire cela sur mon serveur Xubuntu? Puis-je le faire pour ne pas avoir à le mettre à chaque fois?

3
John Scott

Il semble que la clé privée de votre certificat SSL soit protégée par un mot de passe. Pour vérifier si c'est vraiment le cas, examinez le début de votre fichier de clés à l'aide de la commande head -3 your.key. Cette clé privée est cryptée:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,C251E8A1254B933D763703EE1C364AB7

Ce fichier n'est pas crypté:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAvbeWtO9nQP4cFFuhGrOM/WQ73oTQHU7mzZB9CaA3R2iwjDNz
wwlDtT9tfo0tCC2ib9STfeM6AYrdI3wauzCu7AV4CFGSMP3HLX8DJuk8zzbdQHHv

Pour supprimer le mot de passe d'une clé privée RSA, utilisez la commande suivante:

umask 077
mv your.key old-with-pass.key
openssl rsa -in old-with-pass.key -out your.key

La commande umask 077 est nécessaire pour garantir que la nouvelle clé n'est pas créée avec des autorisations trop assouplies. Vous pouvez également modifier manuellement le mode du fichier avec chmod 400 new.key. En fonction de l'emplacement de la clé, vous devrez peut-être préfixer les commandes openssl, mv et chmod avec Sudo.

6
Lekensteyn

Répondez sur http://serverfault.com par @JamesSneeringer.

Je me suis rendu coupable d'avoir supprimé la phrase secrète de mes propres fichiers de clés par le passé, car il s'agissait de la solution la plus simple, mais en termes de sécurité, ce n'était pas la meilleure idée. Une alternative consiste à transmettre la phrase secrète à Apache. Vous pouvez le faire avec l'option SSLPassPhraseDialog dans votre httpd.conf (ou dans un autre fichier inclus).

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éez alors un script très simple appelé /path/to/passphrase-script qui contient quelque chose comme:

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

Lors du démarrage, Apache utilise la sortie de ce script et l’utilise comme phrase secrète de votre clé SSL. Si vous avez plusieurs sites SSL, SSLPassPhraseDialog dispose d'autres moyens d'utilisation, de sorte que vous pouvez avoir un seul script pour toutes vos clés, ou un script distinct pour chacune, ou comme vous le souhaitez. pour le faire.

5
Abdullah