it-swarm.com.de

Ist es möglich, einen RSA-Schlüssel ohne Passphrase zu generieren?

Ich arbeite mit Apache2 und Passenger für ein Rails -Projekt. Ich möchte zu Testzwecken ein selbstsigniertes SSL-Zertifikat erstellen.

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

Wenn ich den obigen Befehl eingebe, heißt es

writing RSA key
Enter PEM pass phrase:

Wenn ich die Passphrase nicht eingebe, erhalte ich den folgenden Fehler

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

Ist es möglich, einen RSA-Schlüssel zu generieren, ohne pass phrase, da ich nicht sicher bin, wie die /etc/init.d/httpd script startet den HTTP-Server ohne menschliches Eingreifen (d. h. wenn ich eine 4-stellige Passphrase gebe, wird erwartet, dass ich diese beim Starten des Apache-HTTP-Servers bereitstelle).

94
diya

Wenn Sie ein selbstsigniertes Zertifikat generieren, können Sie sowohl den Schlüssel als auch das Zertifikat in einem Befehl wie folgt ausführen:

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

Oh, und was @MadHatter in seine Antwort über das Weglassen des -des3 Flagge.

95
Tom H

Lass das -des3 flag, eine Anweisung an openssl zum Verschlüsseln von server.key.new (was übrigens überhaupt kein neuer Schlüssel ist - es ist genau das gleiche wie server.key, nur dass die Passphrase geändert/entfernt wurde).

39
MadHatter

Der Befehl openssl req Aus dem Antwort von @Tom H ist korrekt, um ein selbstsigniertes Zertifikat in server.cert Inkl. ein passwortloser privater RSA-Schlüssel in server.key:

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

So funktioniert es. Das Weglassen von -des3 Wie im Antwort von @MadHatter reicht hier nicht aus Fall, um einen privaten Schlüssel ohne Passphrase zu erstellen. Es ist genug für diesen Zweck im Befehl openssl rsa ("Konvertieren eines privaten Schlüssels"), auf den @MadHatter verweist, und im Befehl openssl genrsa ("Erstellen eines privaten Schlüssels!") Schlüssel ") Befehl. Nur nicht für den Befehl openssl req Hier. Wir brauchen zusätzlich -nodes ("Nein DES Verschlüsselung von server.key Bitte!").

23
tanius

Verwenden Sie die -nodes Parameter, wenn diese Option angegeben ist, wird der private Schlüssel nicht verschlüsselt, z.

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

Führen Sie es einfach erneut durch openssl aus

generieren Sie zuerst den Schlüssel mit der Passphrase

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

8
darethas

Verwenden Sie den nächsten Befehl, um eine passwortlose private Schlüsseldatei mit KEINE Verschlüsselung zu generieren. Der letzte Parameter ist die Größe des privaten Schlüssels.

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

Durch Hinzufügen von '-nodes' zu 'openssl req' kann aus dem Befehl 'openssl req' ein unverschlüsselter privater Schlüssel (keine Passphrase) generiert werden

0
David Roe