L'endroit où vous les mettez n'a pas d'importance tant que vous protégez correctement votre clé privée fichier(s). Le site certificat public est publique ; aucune protection n'est nécessaire - privilèges de serveur ou autre.
Pour développer la réponse, je n'utilise pas l'emplacement par défaut. /etc/ssl
.
Il est plus facile pour moi de garder tous les miens dans un endroit séparé pour des raisons de sauvegarde et autres.
Pour Apache SSL, je garde le mien dans /etc/apache2/ssl/private
ou une "zone racine" similaire dans /etc/apache2
.
Exemple de configuration
Ce billet est destiné à Ubuntu (Debian) + Apache, mais il devrait fonctionner sur la plupart des systèmes.
Il suffit d'appliquer les permissions et de mettre à jour l'emplacement/le chemin dans la configuration donnée (apache/nginx/etc).
Cette réponse suppose également que vous n'utilisez PAS LetsEncrypt/Certbot, ou un service SSL automatisé. Vous avez acheté ou créé un certificat SSL et vous avez obtenu le paquet de fichiers.
Si le SSL fichier(s) clé(s) sont protégés correctement (répertoire et fichiers), tout ira bien. Notez les notes !
Créer des répertoires :
sudo mkdir /etc/apache2/ssl
sudo mkdir /etc/apache2/ssl/private
sudo chmod 755 /etc/apache2/ssl
sudo chmod 710 /etc/apache2/ssl/private
Note :
chmod 710
soutient ssl-cert
sous Ubuntu. (Voir les commentaires)
Définir la permission de 700
en /etc/apache2/ssl/private
fonctionnera également très bien.
Placez les fichiers SSL :
Mettez le public certificat(s) SSL ET certificat(s) intermédiaire(s) en :
/etc/apache2/ssl
(Ce sont *.crt
fichiers, normalement)
Mettez les privé Clé(s) SSL dans :
/etc/apache2/ssl/private
(Ce sont *.key
ou sans extension, normalement)
Note : LetsEncrypt/Certbot utilise l'extension ".pem" pour tous les fichiers SSL (public, chaînes intermédiaires et privé). Mais, vous n'avez pas besoin de déplacer (ou de protéger) ces fichiers. Ils sont déjà en place et protégés. Il suffit de les appeler directement dans votre '.conf' Apache.
Propriétaire du plateau :
Remarque - Si vous ne disposez pas d'un ssl-cert groupe, il suffit de sauter la 2ème ligne :
sudo chown -R root:root /etc/apache2/ssl/
sudo chown -R root:ssl-cert /etc/apache2/ssl/private/
Définir les autorisations :
Certificat(s) public(s)
sudo chmod 644 /etc/apache2/ssl/*.crt
Clé(s) privée(s)
sudo chmod 640 /etc/apache2/ssl/private/*.key
Note :
L'autorisation de groupe pour les clés privées est définie sur READ (640) en raison du groupe ssl-cert d'Ubuntu. L'utilisation de '600' (contrôle par le propriétaire uniquement) est la permission normale pour les clés privées et fonctionnera également.
Activez le module SSL d'Apache
sudo a2enmod ssl
Modifiez les fichiers du site Apache et activez
(voir dernier paragraphe) *
sudo nano /etc/apache/sites-available/mysiteexample-ssl.conf
sudo a2ensite mysiteexample-ssl
# ^^^^^^^^^^^^^^^^^ <-Substitute your ".conf" filename(s)
Redémarrer le service Apache2
sudo service apache2 restart
o
sudo systemctl restart apache2.service
Fait. Testez votre nouveau site SSL.
* Encore une fois, cela va au-delà de la question, mais vous pouvez copier le fichier de configuration du site SSL Apache par défaut ( sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/mysiteexample-ssl.conf
) comme un bon point de départ/exemple de directives/répertoires par défaut normalement utilisés dans un simple fichier 'conf' (Ubuntu/Debian) Apache/SSL. Il pointe normalement vers un certificat SSL auto-signé et une clé (snakeoil), des paquets d'autorité de certification, ainsi que vers les fichiers communs suivants directives utilisé pour un site SSL donné.
Après la copie, éditez simplement le nouveau fichier .conf et ajoutez/supprimez/mettez à jour si nécessaire avec les nouvelles informations/chemins ci-dessus puis exécutez sudo a2ensite mysiteexample-ssl
pour l'activer. Recharger/redémarrer apache2. Test.