Etkileşimli olmayan SSL sertifikası oluşturun [kapalı]


28

Sessizce, etkileşimli olmayan bir SSL sertifikası oluşturmak istiyorum. Yani, herhangi bir veri istenmeden.

Sertifikayı oluşturmamın normal yolu şöyle olurdu:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 \
    -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem 

Aşağıdakileri denedim:

openssl genrsa -out server.key 2048
touch openssl.cnf

cat >> openssl.cnf <<EOF
[ req ]
prompt = no
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
C = GB
ST = Test State
L = Test Locality
O = Org Name
OU = Org Unit Name
CN = Common Name
emailAddress = test@email.com
EOF

openssl req -x509 -config openssl.cnf -nodes -days 7300 \
    -signkey server.key -out /etc/ssl/private/pure-ftpd.pem 

Ama yine de veriler için bilgi istiyorum.


1
İstenilen sonuç yerine ne olup bittiğine dair bir açıklama veya çıktı verebilir misiniz?
Patrick

openssl req -x509 -config openssl.cnf -nodes -days 7300 -signkey server.key -out /etc/ssl/private/pure-ftpd.pem
Çıktı olarak yardımı alıyorum-

Sorun yaşarken hataların çıktısını sağlamak en iyisidir. Sanırım sorununun nedeni bu -signkey. Bu, openssl reqsistemimde geçerli bir seçenek değil . Hata mesajı ilk satırda buna sahip olacaktır:unknown option -signkey
Patrick,

Tabii ki bu signkey, SSL’yi sağlanan anahtarı kullandığımı kullanmasını söylemeli mi?
TheNiceGuy

"Sertifika oluşturmanın normal yolu", hiçbir veri isteminde bulunmaz. Bir şey çıktısını almak istemiyor musun? O zaman kullan 2> /dev/null.
wingedsubmariner

Yanıtlar:


51

Kaçırdığınız şey, sertifika konusunu sertifikaya dahil etmek. -subj bayrağa . Bunu bir config dosyası oluşturmayı tercih ediyorum çünkü bir iş akışına entegre etmek daha kolay ve daha sonra temizlik gerektirmiyor.

Bir adım anahtar ve csr üretimi:

openssl req -new -newkey rsa:4096 -nodes \
    -keyout www.example.com.key -out www.example.com.csr \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"

Bir adım kendinden imzalı şifresiz sertifika üretimi:

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \
    -keyout www.example.com.key  -out www.example.com.cert

Bu komutların hiçbiri veri istemeyecektir.

Süper Kullanıcı hakkındaki bu neredeyse aynı soruya cevabımı görün .


Evet, bu güzel bir çözüm. Kodları çok daha küçük yapar. Teşekkürler: D
TheNiceGuy

1
Özgün yapılandırma dosyasını değiştirmedim, çünkü daha karmaşık bir sertifika için durağan olabileceğini düşündüm. Bir -subjparametre ile gösterilemeyen bazı yapılandırmalar , özellikle v3 uzantılarına ve subjectAltName parametrelerine girdiğinizde.
robbat2

1
Ayrıca -batch(etkileşimli olmayan modu) da kullanabilirsiniz
Eran H.

Birinci komutun -subj, geçerli bir satır içi CSR'si olduğu için ikinci komutun kendi anahtarını oluşturduğu ve otomatik olarak kodladığı yerde çalıştırılmadan önce, anahtarın var olmasını gerektirdiğini unutmayın .
dragon788

@ dragon788 Buna dikkat çektiğiniz için teşekkür ederiz. Düzelttim.
Bahamat

1

Aradığınız komut şudur:

openssl req -new -x509 -config openssl.cnf -nodes -days 7300 -key server.key -out /etc/ssl/private/pure-ftpd.pem

Sürümünüzdeki değişiklikler:

  • -new bir şey üretmek için gereklidir
  • -key yerine kullanılan -signkey
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.