2012-09-28 16 views
5

ich habe folgende Befehle für OpenSSL privaten und öffentlichen Schlüssel zu generieren:generieren privaten und öffentlichen Schlüssel OpenSSL

openssl genrsa –aes-128-cbc –out priv.pem –passout pass:[privateKeyPass] 2048 

und

openssl req –x509 –new –key priv.pem –passin pass:[privateKeyPass] -days 3650 –out cert.cer 

aber die funktionieren nicht für den ersten Befehl i die erhalten folgender Fehler:

usage: genrsa [args] [numbits] 
-des   encrypt the generated key with DES in cbc mode 
-des3   encrypt the generated key with DES in ede cbc mode (168 bit key) 
-seed 
       encrypt PEM output with cbc seed 
-aes128, -aes192, -aes256 
       encrypt PEM output with cbc aes 
-camellia128, -camellia192, -camellia256 
       encrypt PEM output with cbc camellia 
-out file  output the key to 'file 
-passout arg output file pass phrase source 
-f4    use F4 (0x10001) for the E value 
-3    use 3 for the E value 
-engine e  use engine e, possibly a hardware device. 
-rand file:file:... 
       load the file (or the files in the directory) into 
       the random number generator 

Was mache ich falsch?

Edit: i gelöst den ersten Befehl:

openssl genrsa -aes128 -out privkey.pem 2048 

ich jetzt einen Fehler mit dem secound bekommen:

unknown option –x509 
+0

Ich frage mich, ob die Reihenfolge der Parameter von Bedeutung ist? –

Antwort

9

'genrsa' generiert nur einen RSA-Schlüssel.

'req' verwendet dann diesen Schlüssel, um eine Anfrage im Stil x509 zu stellen.

Wenn Sie nur ein RSA-Schlüsselpaar benötigen - verwenden Sie genrsa.

Wenn Sie ein Schlüsselpaar und eine signierte x509-Anfrage benötigen, verwenden Sie 'genrsa' und dann 'req'. .

Optional 'req' kann auch für Sie diesen Schlüssel erzeugen (dh es kapselt den Befehl 'genrsa' (und die gendh)

So:

openssl genrsa -aes128 -out privkey.pem 2048 
openssl req -new -x509 -key privkey.pem 

ist fast gleichbedeutend mit

openssl req -new -x509 -keyout privkey.pem -newkey rsa:2048 

der Ausnahme, dass im Gegensatz zu ‚genrsa‘, ‚req‘ ermöglicht es Ihnen nicht aes128 als Verschlüsselungs angeben.

In vielen Unternehmenseinstellungen erfolgt dies in zwei Schritten, um eine ausreichende Kontrolle über die Schlüsselverschlüsselung zu erhalten.

+0

Dieser Befehl hat den Trick: openssl req -new -x509 -Schlüssel new.pem -days 3650 -out cert.crt Vielen Dank – kozla13

+2

Beachten Sie, dass -x509 ein selbstsigniertes Zertifikat liefert. Lassen Sie diese Option aus, wenn Sie eine Zertifikatsanforderung generieren möchten. – Todd

1

Wie ich aus der Ausgabe sehen können, irrt Algorithmus wählen. Sollten Sie nicht -aes128 statt -aes-128-cbc übergeben?

Von Handbuch Ich nehme an, dass -aes-128-cbc ist ein richtiger Parameter für openssl enc, aber ich weiß nicht, ob es für genrsa funktionieren sollte.

Verwandte Themen