Geçiş tümcesi olmadan RSA anahtarı oluşturmak mümkün müdür?


83

Bir Rails projesi için Apache2 ve Yolcu ile çalışıyorum. Test amacıyla kendinden imzalı bir SSL Sertifikası oluşturmak istiyorum .

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

Yukarıdaki komutu girdiğimde yazıyor

writing RSA key
Enter PEM pass phrase:

Şifre phrse girmezsem aşağıdaki hatayı alıyorum

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

Bir RSA anahtarı vermek mümkün pass phrasedeğil mi, çünkü /etc/init.d/httpdbetiğin HTTP sunucusunu insan müdahalesi olmadan nasıl başlatacağından emin değilim. ).


6
Komut satırınız opensslmevcut bir anahtarı şifrelemeyi söyler . İstediğinden başka bir şeye benziyor.
David Schwartz

Apache olabilir noninteractively privatekey parolayı (ler) elde etmek üzere konfigüre edilebilir; mod_ssl için doc dosyasına bakın ya da sağlanan / paketlenmiş yapılandırma dosya (lar) ındaki yorumlar. Bununla birlikte, bu genellikle privatekey'in şifrelenmemiş olarak bırakılmasından daha güvenli değildir, ki bu daha basittir.
dave_thompson_085

Yanıtlar:


88

Kendinden imzalı bir sertifika üretiyorsanız, hem anahtarı hem de sertifikayı bir komutla aşağıdaki gibi yapabilirsiniz:

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

Oh ve hangi @MadHatter söyledi onun cevabını atlayarak yaklaşık -des3bayrağı.


14
Düğüm yönergesi neden burada olduğumu. (Özel anahtarın DES şifrelemesi yok)
jorfus

38

-des3Server.key.new'i şifrelemek için openssl komutunu içeren bayrağı bırakın (bu arada, bu arada, yeni bir anahtar değildir - server.key ile tamamen aynıdır, sadece parola değiştirilir / soyulur) .


21

openssl reqDan komut @Tom H tarafından cevap içinde kendinden imzalı sertifika oluşturmak için doğrudur server.certdahil. şifre içermeyen bir RSA özel anahtarı server.key:

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

İşte nasıl çalışıyor. @MadHatter'ın cevabında olduğu -des3gibi atlamak , bu durumda parola olmadan özel bir anahtar oluşturmak için yeterli değildir. O ise bu amaç için yeterli @MadHatter ve ile anılan ( "özel bir anahtar dönüştürmek") komutu ( "özel bir anahtar oluşturmak") komutu. Sadece buradaki komut için değil. Ek olarak ihtiyacımız var (" Lütfen DES'in şifrelemesi yok !").openssl rsaopenssl genrsaopenssl req-nodesserver.key


17

-nodesBu seçenek belirtilirse parametreyi kullanın, sonra özel anahtar şifrelenmez, örneğin:

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

Sadece openssl aracılığıyla tekrar çalıştır

önce parola anahtarını kullanarak anahtar oluştur

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


Bu ubuntu 16.04 üzerinde çalışmıyor
sweetfa

3
Bu yanıtın sorulmadığından değil, komutun da bir girdi gerektirdiği ve bir anahtar üretmediği için reddettim.
Don,

Kullanıcı zaten bir anahtarın nasıl oluşturulacağını bildiklerini gösterdi. Bu cevap, bu bilgiyi temel alır ve yeni oluşturulan anahtarı alıp tekrar iletmeyi öneririm. openssl Dolayısıyla, sorulanın amacına ulaşarak: bir geçiş cümlesi olmadan bir anahtar üretmek.
saat

Benim için çalışıyor openssl, GitBash'ın Windows 10'unda. Bilgi için teşekkürler.
Yeşil

0

NO şifrelemeli şifresiz özel anahtar dosyası oluşturmak için bir sonraki komutu kullanın . Son parametre, özel anahtarın boyutudur.

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

1
Bu parola az değildir. Tamamen ve tamamen şifre doludur.
dave_thompson_085

Parametrelerin pozisyonunu deniyordum. Şimdi tamam. Son iki parametrenin yerlerini değiştirdim ve komutu test ettim.
nix

Şimdi şifrelenmemiş bir dosya üretir . (Yalnızca) konum bağımsız değişkeninden sonraki seçenekler dikkate alınmaz. Dosyaya bak; şifreli değil. Değiştir 4096 -des3ile 4096 -sillywombatve hala çalışıyor ve aynı biçimi, hala şifrelenmemiş (ama tabii farklı bir anahtar değeri) üretir. Parolasız şifreli bir privatekey dosyaya sahip olmanın bir yolu yoktur ve altı yıl önce şifresiz şifrelenmemiş bir dosya için doğru çözümler verilmiştir.
dave_thompson_085

Haklısın. @ dave_thompson_085. Son parametre, komutu etkilemez. Cevabımı güncelledim. Hiçbir şifreli base64 şifreli ve şifre korumalı özel anahtar dosyası oluşturmaz.
nix
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.