74 votes

Comment créer un certificat SSL auto-signé ?

J'ai mis en place SSL sur mon serveur web, maintenant j'ai besoin de deux fichiers :

  • un certificat
  • une clé de certificat

Comment créer un certificat auto-signé à des fins de test ?

109voto

andybee Points 497

Ubuntu, même la version "minimale", est livrée avec l'option ssl-cert est préinstallé, ce qui signifie que vous n'avez rien à faire.

Les fichiers que vous recherchez sont déjà sur votre système :

/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key

Avancé :

Si pour une raison quelconque vous devez créer un nouveau certificat, vous pouvez exécuter

sudo make-ssl-cert generate-default-snakeoil --force-overwrite 

Si vous souhaitez modifier la date d'expiration de votre certificat, vous pouvez manipuler le script make-ssl-cert script à l'adresse suivante /usr/sbin/make-ssl-cert . Vers 124, il y a une ligne similaire à celle-ci :

openssl req -config $TMPFILE -new -x509 -nodes \ 

où vous pouvez modifier la date d'expiration en ajoutant l'élément -days argument :

openssl req -config $TMPFILE -new -days 365 -x509 -nodes \ 

Vous trouverez d'autres options dans la section page du manuel de req .

23voto

nietonfir Points 331

Comme nous l'avons déjà mentionné, Ubuntu Server est livré avec les outils nécessaires. En fonction de la version de votre serveur, vous devrez rechercher le fichier documentation spécifique . Je vais essayer de résumer le processus de génération d'un certificat auto-signé de la manière suivante le LTS actuel (12.04) .

Vous devez d'abord générer les clés pour la demande de signature de certificat (CSR) :

openssl genrsa -des3 -out server.key 2048

C'est à vous d'entrer une phrase de passe ou non. Si vous le faites, chaque fois que vous (re)démarrez un service utilisant ce certificat, vous devrez fournir la phrase de passe. En revanche, vous pouvez créer une clé "non sécurisée" sans phrase de passe à partir de la clé sécurisée :

openssl rsa -in server.key -out server.key.insecure
# shuffle the key names to continue without passphrases
mv server.key server.key.secure
mv server.key.insecure server.key

Et maintenant vous allez créer le CSR à partir de la clé. Avec le CSR et la clé, un certificat auto-signé peut être généré :

openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

La dernière étape consiste à installer le certificat et la clé, dans Debian/Ubuntu généralement dans /etc/ssl :

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

Et enfin, les applications utilisant le certificat/la clé doivent être configurées en conséquence.

0voto

Zombo Points 1663

Les autres réponses sont bonnes, mais si pour une raison ou une autre vous n'avez pas la liste ou ne voulez pas les utiliser, j'ai trouvé un outil open source qui est très simple simple :

minica -domains localhost

Cela créera un fichier clé minica-key.pem et le fichier de certification minica.pem . L'outil pour les créer est un simple fichier en langage Go, sans aucune dépendance externe. externes :

https://github.com/jsha/minica

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X