Etkileşimli olmayan SSL sertifika istekleri oluşturma


15

İlk komutta gerekli tüm parametreleri belirterek SSL sertifikası istekleri oluşturmanın bir yolu var mı? CLI tabanlı bir web sunucusu kontrol paneli yazıyorum ve mümkünse yürütme sırasında beklemenin kullanılmasını önlemek opensslistiyorum.

Sertifika isteği oluşturmanın tipik bir yoludur:

$ openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout foobar.com.key -out foobar.com.csr
Generating a 2048 bit RSA private key
.................................................+++
........................................+++
writing new private key to 'foobar.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New Sweden
Locality Name (eg, city) []:Stockholm
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Scandanavian Ventures, Inc.
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:foobar.com
Email Address []:gustav@foobar.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:FooBar

Böyle bir şey görmeyi umuyorum: (işsiz örnek)

$ openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout foobar.com.key -out foobar.com.csr \
-Country US \
-State "New Sweden" \
-Locality Stockholm \
-Organization "Scandanavian Ventures, Inc." \
-CommonName  foobar.com \
-EmailAddress gustav@foobar.com \
-Company FooBar

İyi adam sayfasının konuyla ilgili söyleyecek bir şeyi yoktu, ayrıca Google aracılığıyla hiçbir şey bulamadım. SSL sertifikası istek oluşturma etkileşimli bir işlem olmalı mı yoksa tüm parametreleri tek bir komutta belirtmenin bir yolu var mı?

Bu, Debian kaynaklı bir Linux dağıtımında çalışıyor openssl 1.0.1.



@ceejayoz: Çok hoş, teşekkür ederim. Flags) Bu opensslbayraklar nerede belgeleniyor? ב) Bunu bulmak için ne yaptın? Teşekkür ederim!
dotancohen

1
Ben "CSR komut dosyası oluşturmak" googled. -subjParametresinin (pek ayrıntılı olarak) belgelenmiştir openssl.org/docs/apps/req.html .
ceejayoz

Genellikle çağrılan bir yapılandırma dosyası oluşturmak da mümkündür openssl.cnf.
sebix

Yanıtlar:


16

iki bölüm eksik:

konu satırı olarak adlandırılabilir

-subj "/C=US/ST=New Sweden/L=Stockholm /O=.../OU=.../CN=.../emailAddress=..."
  • X=X509 kodu olmak üzere değeri ... ile değiştirmek ( O rganisation / O rganisation U nit / etc ...)

olarak adlandırılabilecek şifre değeri

-passout pass:client11
-passin  pass:client11
  • çıkış / giriş şifresi veren

yeni anahtar için çağrıma benziyor

openssl genrsa -aes256 -out lib/client1.key -passout pass:client11 1024
openssl rsa -in lib/client1.key -passin pass:client11 -out lib/client1-nokey.key

openssl req -new -key lib/client1.key -subj req -new \
    -passin pass:client11 -out lib/client1.csr \
    -subj "/C=US/ST=New Sweden/L=Stockholm/O=.../OU=.../CN=.../emailAddress=..."

(şimdi görüyorum, iki tane var -new...)


2

Resmi dokümanlarda-batch açıklandığı gibi seçeneği kontrol edin .


2
Teşekkür ederim. Toplu seçeneğin var olduğunu görüyorum, ancak nasıl kullanılacağına dair bir açıklama yok gibi görünüyor.
dotancohen

Bu cevap neden reddedildi? Toplu iş sorunu için olası bir çözüm değil mi? Adından, sadece olabileceği gibi geliyor.
dotancohen

Kesinlikle bunu -batch seçeneği ile yapmanın tek yolu, neden indiremiyorum hiçbir fikrim yok. "İyi adam sayfasının konuyla ilgili söyleyecek bir şeyi yoktu" ifadesi, "-batch" seçeneği nedeniyle yanlıştır.
çıkarma

Çözümden bahsetmediğim için, partiden bahsetmek için seçildim, ileride kullanışlı olabilir.
dotancohen

-1

Düzenli openssl komutuma ekliyorum:

openssl req -x509 -nodlar -gün 7300 -newkey rsa: 2048 -keyout /etc/ssl/private/key.pem -out /etc/ssl/private/cert.pem

Bu hat:

-subj "/C=PE/ST=Lima/L=Lima/O=Acme Inc. /OU=IT Department/CN=acme.com"

Açıklama:

  • Ülke Adı (2 harfli kod) [AU]: PE
  • Eyalet veya İl Adı (tam ad) [Bazı eyaletler]: Lima
  • Yerellik Adı (ör. Şehir) []: Lima
  • Kuruluş Adı (ör. Şirket) [Internet Widgits Pty Ltd]: Acme Inc.
  • Kuruluş Birimi Adı (ör. Bölüm) []: BT Departmanı
  • Ortak Ad (örneğin sunucu FQDN'si veya SİZİN adınız) []: acme.com

"/" Gibi ayırıcı kullanın.


1
Kabul edilen cevap zaten bu bilgiyi içeriyor gibi görünüyor. Aksi takdirde, teşekkür ederim.
dotancohen
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.