Vraag Is het mogelijk om een ​​RSA-sleutel te genereren zonder wachtwoordzin?


Ik werk met Apache2 en Passenger for a Rails. Ik wil een zelfondertekening maken SSL-certificaat voor testdoeleinden.

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

Wanneer ik het bovenstaande commando invoert, staat er

writing RSA key
Enter PEM pass phrase:

Als ik niet de passphrse ga, word ik de onderstaande foutmelding

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

Is het mogelijk om een ​​RSA-sleutel te genereren zonder te geven? pass phrase, omdat ik niet zeker weet hoe het /etc/init.d/httpd script start de HTTP-server zonder menselijke tussenkomst (d.w.z. Als ik een wachtwoordzin van 4 tekens geef, verwacht het dat ik dit kan bieden tijdens het starten van de Apache HTTP-server).


68
2018-03-05 06:28


oorsprong


Uw opdrachtregel vertelt openssl om een ​​bestaande sleutel te coderen. Dat klinkt als iets anders dan wat je wilt. - David Schwartz
Apache httpd kan worden geconfigureerd om de privatekey-wachtwoordzin (nen) niet-interactief te verkrijgen; bekijk het document voor mod_ssl, of in veel gevallen opmerkingen in het / de meegeleverde configuratiebestand (en). Dit is echter meestal niet veiliger dan alleen de privatekey ongecodeerd te laten, wat eenvoudiger is. - dave_thompson_085


antwoorden:


Als u een zelfondertekend certificaat genereert, kunt u zowel de sleutel als cert in één opdracht doen zoals:

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

Oh, en wat @MadHatter zei in zijn antwoord over het weglaten van de -des3 vlag.


76
2018-03-05 06:55



De knooppuntenrichtlijn is waarom ik hier ben. (Geen DES-codering van privésleutel) - jorfus


Verlaat de -des3 flag, wat een instructie is om openssl te gebruiken om server.key.new te encrypten (wat overigens helemaal geen nieuwe sleutel is - het is exact hetzelfde als server.key, alleen met de wachtwoordzin gewijzigd / verwijderd).


34
2018-03-05 06:49





De openssl req commando van de antwoord door @Tom H is correct om een ​​zelfondertekend certificaat te maken in server.cert incl. een persoonlijke RSA-privésleutel zonder wachtwoord server.key:

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

Hier is hoe het werkt. Het weglaten -des3 als in de antwoord door @MadHatter is in dit geval niet voldoende om een ​​privésleutel zonder wachtwoordzin te maken. Het is genoeg voor dit doel in de openssl rsa ("convert een private sleutel") commando waarnaar verwezen wordt door @MadHatter en de openssl genrsa ("create private private key") commando. Alleen niet voor de openssl req commando hier. We hebben het ook nodig -nodes ("Geen DES-codering van server.key please! ").


19
2018-02-09 00:25





Gebruik de -nodes parameter, als deze optie is opgegeven, wordt de persoonlijke sleutel niet gecodeerd, bijvoorbeeld:

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/emailAddress=dev@www.example.com"

7
2018-05-12 14:42





Voer het gewoon opnieuw uit via openssl

genereer eerst de sleutel met de wachtwoordzin

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


6
2018-01-26 15:37



Dit werkt niet op ubuntu 16.04 - sweetfa
Ik heb downvoted omdat dit antwoord niet is wat werd gevraagd, ook vereist het commando een input en genereert het geen sleutel. - Don
De gebruiker heeft al aangetoond dat hij weet hoe hij een sleutel moet genereren. Dit antwoord bouwt voort op die kennis, en ik stel voor om de nieuw gegenereerde sleutel te nemen en opnieuw door te geven openssl   Vandaar het bereiken van het doel van wat werd gevraagd: het genereren van een sleutel zonder een wachtwoordzin. - darethas
Werkt voor mij, openssl op Windows 10 van GitBash. Bedankt voor de informatie. - Green


Gebruik de volgende opdracht om een ​​wachtwoordloos privésleutelbestand te genereren met GEEN codering. De laatste parameter is de grootte van de privésleutel.

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

0
2018-04-25 11:17



Dit is NIET wachtwoordloos. Het is volledig en volledig wachtwoord-ful. - dave_thompson_085
Ik was aan het experimenteren met de positie van de parameters. Het is nu goed. Ik veranderde de plaatsen van de laatste twee parameters en testte het commando. - nix
Nu produceert het een ongecodeerde het dossier. Opties na het (alleen) positionele argument worden genegeerd. Kijk naar het bestand; het is niet gecodeerd. Vervangen 4096 -des3 met 4096 -sillywombat en het werkt nog steeds en produceert hetzelfde formaat, nog steeds niet-versleuteld (maar een andere belangrijke waarde natuurlijk). Er is geen manier om een ​​wachtwoordloos gecodeerd privatekey-bestand te hebben en de juiste oplossingen voor een niet-versleuteld wachtwoord zonder wachtwoord werden zes jaar geleden gegeven. - dave_thompson_085
Je hebt gelijk. @ Dave_thompson_085. De laatste parameter heeft geen invloed op de opdracht. Ik heb mijn antwoord bijgewerkt. Het genereert geen versleuteld gecodeerd base64 en geen privésleutelbestand met wachtwoordbeveiliging. - nix