Sur Ubuntu, il semble que le meilleur endroit pour une clé privée utilisée pour signer un certificat (à utiliser par nginx) est dans /etc/ssl/private/
Cette réponse ajoute que le certificat devrait entrer /etc/ssl/certs/
mais cela semble être un endroit dangereux. Les .crt
fichiers doivent-ils être gardés en sécurité ou sont-ils considérés comme publics?
ssl
ssl-certificate
openssl
Adam Nelson
la source
la source
.crt
place sur un panneau d'affichage Times Square, si vous le souhaitez.Réponses:
Le fichier .crt est envoyé à tout ce qui se connecte; c'est public. (
chown root:root
etchmod 644
)Pour ajouter à l'emplacement de la clé privée; assurez-vous de bien le sécuriser et de l'avoir à l'intérieur. (
chown root:ssl-cert
etchmod 640
)la source
ssl-cert
, utilisé pour, entre autres choses, peut-être créer des certificats auto-signés de snakeoilPeu importe où vous les mettez, tant que vous protégez correctement vos fichiers de clé privée . Le certificat public est public; aucune protection requise - privilèges de serveur ou autres.
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 une zone séparée pour des raisons de sauvegarde + autres.
Pour Apache SSL, je conserve le mien
/etc/apache2/ssl/private
ou une "zone racine" similaire dans/etc/
.Exemple de configuration
Cet article est destiné à Ubuntu (Debian) + Apache, mais devrait fonctionner sur la plupart des systèmes -
Appliquez simplement les autorisations et mettez à jour l’emplacement / le chemin dans la configuration donnée (apache / nginx / etc).
Si les fichiers de clé SSL sont correctement protégés (répertoire et fichiers), tout ira bien. Notez les notes!
Créer des répertoires:
Note:
chmod 710
supporte lesssl-cert
groupes sous Ubuntu. (Voir les commentaires)Réglage de l' autorisation de
700
le/etc/apache2/ssl/private
sera également très bien.Placez les fichiers SSL:
Propriétaire du set:
Remarque:
Si vous n'avez pas de groupe ssl-cert , utilisez simplement 'root: root' sur la ligne ci-dessus ou ignorez la 2ème ligne.
Définir les autorisations:
Certificat (s) public (s)
Clé (s) privée (s)
Remarque:
L'autorisation de groupe est définie sur READ (640) en raison du groupe Ubuntu ssl-cert. «600» est bien aussi.
Activer le module SSL Apache
Éditez tous les fichiers du site Apache et activez
(voir dernier paragraphe) *
Redémarrez le service Apache2
ou
Terminé. Testez votre nouveau site SSL.
* Encore une fois, cela va au-delà de la question, mais vous pouvez copier le fichier de configuration de site SSL Apache par défaut (
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/mysiteexample-ssl.conf
) comme bon point de départ / exemple de directives / répertoires par défaut normalement utilisés sous un simple fichier (conf) Apache / SSL (Ubuntu / Debian) . Il pointe normalement vers un certificat SSL auto-signé + clé (snakeoil), des ensembles d'autorités de certification, ainsi que des directives courantes utilisées pour un site SSL donné.Après la copie, éditez simplement le nouveau fichier .conf et ajoutez-le / supprimez / mettez-le à jour si nécessaire avec les nouvelles informations / chemins ci-dessus, puis exécutez-le
sudo a2ensite mysiteexample-ssl
pour l'activer.la source
<VirtualHost *:443>
section dans votre documentsites-available/mysite.conf
devrait inclure les certificats suivants:SSLEngine on
SSLCertificateFile /etc/apache2/ssl/mysite.crt
SSLCertificateKeyFile /etc/apache2/ssl/private/mysite.key
Toutes les réponses ici semblent OK, mais je tiens à mentionner une chose que j’ai trouvée est un problème ... Si vous devez concaténer votre certificat avec des intermédiaires ou des racines pour créer un fichier chaîne, ne le mettez pas
/etc/ssl/certs
, carc_rehash
est exécuté, il peut créer des liens symboliques de hachage vers vos certificats en raison de leurs racines ou de leurs intermédiaires.Puis, plus tard, si vos certificats sont arrivés à expiration et que vous les supprimez et que vous ne savez pas ré-exécuter
c_rehash
, il se peut que des liens symboliques de hachage soient rompus dans votre/etc/ssl/certs
répertoire et que des choses étranges commencent à se produire lorsque votre ordinateur local tente de se connecter à lui-même SSL, et il ne peut pas trouver les racines pour valider. Par exemple, avec curl, j'ai soudainement commencé à obtenir:Peu de temps après avoir nettoyé de vieux fichiers .crt et concaténés .pem que j'avais
/etc/ssl/certs
.Stocker au moins vos chaînes ailleurs évite ce problème. Je me suis retrouvé
/etc/ssl/local_certs
à tenir mes certs et mes chaînes afin qu'ils ne soient pas perdus dans le fouillis des certs CA que vous trouverez dans/etc/ssl/certs
la source
Il n'y a pas vraiment un endroit dangereux si l' autorisation pour les fichiers individuels / répertoire est défini sur quelque chose comme
chown root :0 private.key
etchmod 600 private.key
pour que seul root peut le lire. Les CSR et les fichiers de certificat sont moins sensibles que vous le dites.Avec ces autorisations, les chemins que vous mentionnez et / usr / local / ssl devraient convenir.
la source
Les emplacements sont corrects:
/etc/ssl/certs/
pour.crt
fichier/etc/ssl/private
pour.key
fichierLe propriétaire doit être
root:root
pour les deux (utilisezsudo chmod root:root <file>
pour changer si nécessaire).Permissions :
644
pour.crt
fichier600
pour.key
fichierCela fonctionnera pour
nginx
.la source