it-swarm.com.de

Generieren Sie mit OpenSSL CSR und privaten Schlüssel mit Passwort

Ich verwende den folgenden Befehl, um eine CSR zusammen mit einem privaten Schlüssel mithilfe von OpenSSL zu generieren:

openssl req -new -subj "/CN=sample.myhost.com" -out newcsr.csr -nodes -sha512 -newkey rsa:2048

Es werden zwei Dateien generiert:

  • newcsr.csr
  • privkey.pem

Der generierte private Schlüssel hat kein Passwort: Wie kann ich während des Generierungsprozesses eines hinzufügen?

Hinweis : Berücksichtigen Sie, dass mein letztes Ziel darin besteht, ein p12 Datei durch Kombinieren des gemäß CSR bereitgestellten Zertifikats und des privaten Schlüssels (mit einem Passwort gesichert).

11
vdenotaris

Graben "-Knoten"

Lass einfach das (ungeschickt benannte) -nodes (read: " Keine DES Verschlüsselung") Parameter aus dem Befehl.

Verwenden Sie OpenSSL "Pass Phrase Argumente"

Wenn Sie ein Passwort für die Ausgabedatei angeben möchten, benötigen Sie das (ebenfalls umständlich benannte) -passout Parameter.

Dies ist ein mehrdimensionaler Parameter, mit dem Sie das tatsächliche Kennwort aus einer Reihe von Quellen lesen können. Zum Beispiel aus einer Datei oder einer Umgebungsvariablen. Oder direkt von der Kommandozeile (am wenigsten sicher). Nachfolgend finden Sie Beispiele für jede dieser Verwendungen.

(Die offizielle Manpage listet noch mehr Passwortquellen im Abschnitt "Pass Phrase Options" auf (Archiviert hier .))

Beispiel: Passwort von der Kommandozeile mit "pass:"

$ openssl req -new -passout pass:"Pomegranate" -subj "/CN=sample.myhost.com" -out newcsr.csr -sha512 -newkey rsa:2048
Generating a 2048 bit RSA private key
................................................................................................................................+++
......................+++
writing new private key to 'privkey.pem'
-----


$ openssl rsa -in privkey.pem -passin pass:'Pomegranate' | head -n2
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAsSP5kLRPP8wPODrnvuAeeoqGMqTOvRULL423vv6+zjYhwPUi

Beispiel: Passwort von Variable mit "env:"

$ export MYPASS='Elderberry'


$ openssl req -new -passout env:MYPASS -subj "/CN=sample.myhost.com" -out newcsr.csr -sha512 -newkey rsa:2048
Generating a 2048 bit RSA private key
............................+++
.....................+++
writing new private key to 'privkey.pem'
-----


$ openssl rsa -in privkey.pem -passin pass:'Elderberry' | head -n2
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAv0NnBnigPp+O9G4UXc0qSyeELdJJjTmnO9GEtE5GlPGoK7vW

Beispiel: Passwort aus Datei mit "Datei:"

$ echo "Farkleberry" > password.txt


$ openssl req -new -passout file:password.txt -subj "/CN=sample.myhost.com" -out newcsr.csr -sha512 -newkey rsa:2048
Generating a 2048 bit RSA private key
......................+++
...........+++
writing new private key to 'privkey.pem'
-----


$ openssl rsa -in privkey.pem -passin pass:'Farkleberry' | head -n2
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAsHICgYvqe4i9CIR5eQk38JJmuTaJQvyxPH9S+BahT5XWh88z

Verwandte Lektüre

23
StackzOfZtuff

Sie können den Schlüssel mit einem Kennwort mit dem folgenden Befehl aktualisieren:

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

Dann benutze mv server.key.new server.key um den alten Schlüssel zu überschreiben.

2
BadSkillz