web-dev-qa-db-fra.com

Est-il possible de générer une clé RSA sans phrase de passe?

Je travaille avec Apache2 et Passenger pour un projet Rails. Je voudrais créer un certificat SSL auto-signé à des fins de test.

Sudo openssl rsa -des3 -in server.key -out server.key.new

Quand j'entre la commande ci-dessus, il dit

writing RSA key
Enter PEM pass phrase:

Si je n'entre pas la phrase de passe, je reçois l'erreur ci-dessous

unable to write key
3079317228:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:Yo
u must type in 4 to 1024 characters
3079317228:error:0906406D:PEM routines:PEM_def_callback:problems getting passwor
d:pem_lib.c:111:
3079317228:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:pem_lib.c:382

Est-il possible de générer une clé RSA sans donner pass phrase, car je ne sais pas comment le /etc/init.d/httpd le script démarrera le serveur HTTP sans intervention humaine (c'est-à-dire si je donne une phrase de passe à 4 caractères, il s'attend à ce que je le fournisse lors du démarrage du serveur HTTP Apache).

94
diya

Si vous générez un certificat auto-signé, vous pouvez effectuer la clé et le certificat dans une seule commande comme ceci:

openssl req  -nodes -new -x509  -keyout server.key -out server.cert

Oh, et ce que @MadHatter a dit dans sa réponse à propos de l'omission du -des3 drapeau.

95
Tom H

Laissez le -des3 flag, qui est une instruction pour openssl pour crypter server.key.new (qui, soit dit en passant, n'est pas du tout une nouvelle clé - c'est exactement la même chose que server.key, seulement avec la phrase de passe modifiée/supprimée).

39
MadHatter

Le openssl req la commande de la réponse de @Tom H est correcte pour créer un certificat auto-signé dans server.cert incl. une clé privée RSA sans mot de passe dans server.key:

openssl req -nodes -new -x509 -keyout server.key -out server.cert

Voici comment cela fonctionne. Omettre -des3 comme dans le réponse de @MadHatter ne suffit pas dans ce cas pour créer une clé privée sans mot de passe. Il est suffisant à cet effet dans le openssl rsa ("convertir une clé privée") commandée par @MadHatter et openssl genrsa ("créer une clé privée"). Pas pour le openssl req commande ici. Nous avons également besoin de -nodes ("Non DES cryptage de server.key S'il vous plaît!").

23
tanius

Utilisez le -nodes paramètre, si cette option est spécifiée, la clé privée ne sera pas chiffrée, par exemple:

openssl \
    req \
    -nodes \
    -newkey rsa:2048 \
    -keyout www.example.com.key \
    -out www.example.com.csr \
    -subj "/C=DE/ST=NRW/L=Berlin/O=My Inc/OU=DevOps/CN=www.example.com/[email protected]"
20
panticz.de

Exécutez-le à nouveau via openssl

générer d'abord la clé avec la phrase secrète

puis openssl rsa -in server.key -out server.key

8
darethas

Utilisez la commande suivante pour générer un fichier de clé privée sans mot de passe avec AUCUN cryptage. Le dernier paramètre est la taille de la clé privée.

openssl genrsa -out my-passless-private.key 4096
1
nix

L'ajout de '-nodes' à la 'openssl req' permet de générer une clé privée non chiffrée (pas de phrase secrète) à partir de la commande 'openssl req'

0
David Roe