2011-05-31 17 views
15

Kendinden imzalı bir sertifika oluşturmak için OpenSSL komut satırı aracını kullanıyorum. İki sorun dışında düzgün çalışıyor gibi görünüyor. Konu Alternative Name (kritik) ile bir .cer oluşturmaya başlayamıyorum ve Sürüm 3 olan bir sertifikayı nasıl oluşturacağımı anlayamadım (bunun henüz kritik olup olmadığından emin değil, ancak öğrenmeyi tercih edeceğinden emin değilim) sürüm nasıl ayarlanır).OpenSSL Sürüm V3, Konu Alternatif Adı

Bunu başarılı bir şekilde yapan var mı?

: Varsayılan yapılandırma (.cfg) dosyası (aşağıda görülen) görünüşte net belgeler vardır "Bu malzeme SubjectAltName ve issuerAltname içindir İthalat e-posta adresi SubjectAltName = e:.. Kopya" Ancak bunu yapar

çalışmıyor Önsezim, Alternatif İsmin, V1 özelliklerinde mevcut olmayan bir b/c ifadesini göstermemesidir, bu yüzden de o sürümü belirlemeye devam ediyorum. (EmailAddress hatalı yerleştirildi) Ben şu sürümüyle çalışmak zorunda

[ req ] 
default_bits  = 2048 
default_keyfile  = privkey.pem 
distinguished_name = req_distinguished_name 
emailAddress  = [email protected] 
req_extensions   = v3_req 
x509_extensions   = v3_ca 

[req_distinguished_name] 
C = [Press Enter to Continue] 
C_default = US 
C_min = 2 
C_max = 2 

O = [Press Enter to Continue] 
O_default = default 

0.OU=[Press Enter to Continue] 
0.OU_default = default 
1.OU=[Press Enter to Continue] 
1.OU_default = PKI 
2.OU=[Press Enter to Continue] 
2.OU_default = ABCD 
commonName = Public FQDN of server 
commonName_max = 64 

[ v3_req ] 
basicConstraints = CA:FALSE 
keyUsage = digitalSignature, nonRepudiation, keyEncipherment 

[ v3_ca ] 
subjectKeyIdentifier = hash 
authorityKeyIdentifier = keyid:always,issuer:always 
subjectAltName   = email:[email protected] 
issuerAltName   = issuer:copy 
+0

Aşağıdakilerle çalıştığım config dosyasını göndermeye yardımcı olabileceğini düşündüm: – Kandres22

cevap

7

:

[ req ] 
default_bits  = 2048 
default_keyfile  = privkey.pem 
distinguished_name = req_distinguished_name 
req_extensions   = v3_req 
x509_extensions   = v3_ca 

[req_distinguished_name] 
C = [Press Enter to Continue] 
C_default = US 
C_min = 2 
C_max = 2 

O = [Press Enter to Continue] 
O_default = default 

0.OU=[Press Enter to Continue] 
0.OU_default = default 
1.OU=[Press Enter to Continue] 
1.OU_default = PKI 
2.OU=[Press Enter to Continue] 
2.OU_default = ABCD 
commonName = Public FQDN of server 
commonName_max = 64 
emailAddress = [Press Enter to Continue] 
emailAddress_default = [email protected] 

[ v3_req ] 
basicConstraints = CA:FALSE 
keyUsage = digitalSignature, nonRepudiation, keyEncipherment 

[ v3_ca ] 
subjectKeyIdentifier = hash 
authorityKeyIdentifier = keyid:always,issuer:always 
subjectAltName   = email:[email protected] 
issuerAltName   = issuer:copy 

Notlar:

    İşte

    kullanıyorum yapılandırma dosyasıdır
  • Kullandığım sertifikayı oluşturmak için:

    openssl req -config req.cnf -new -nodes -out req.pem -x509 
    
  • issuerAltname için fazla bir şey görmedim (nerede olduğunu bilmek isteyip istemediyseniz).
  • issuer:always kullanımı authorityKeyIdentifier için önerilmez.
  • email:copy şimdi subjectAltName ile çalışır.
  • v3_req bölüm
2

Ne komutu CSR sertifika isteği yapmak için kullandı yanı req_extensions olarak hattı. (Gereksiz? Sertifika dosyası yapmak için kullandı hangi komut? Bildiğiniz farklı koşullar için farklı cevaplar .

Belki

SubjectAltName = e koyarak değildir: kopya

bölümünde

[v3_req]

böylece

-extfile/etc/pki/TLS/openssl kullanmalıdır eğer Belki, sertifikayı oluşturmak için openssl X509 kullanıyor.cnf

sizin yapılandırma dosyası kullanmak doesnt olmadan

Ayrıca -extensions komut satırı anahtarı Burada

7

sizin için basit adım

v3_req

gerekebilir çünkü

CSR oluştururken -config ve -extensions kullanmalı ve sertifika oluştururken Eğer -extfile kullanmalıdır yedi ve burada

openssl req -new -nodes -keyout test.key -out test.csr -days 3650 -subj "/C=US/ST=SCA/L=SCA/O=Oracle/OU=Java/CN=test cert" -config /etc/pki/tls/openssl.cnf -extensions v3_req 
openssl x509 -req -days 3650 -in test.csr -CA cacert.pem -CAkey rootCA.key -CAcreateserial -out test.pem -extfile /etc/pki/tls/openssl.cnf -extensions v3_req 

umut bu yardımcı olur örnektir -extensions

0

Yapılandırma dosyasında subjectAltName girişinde v3_req gereklidir.

komutu, sertifikayı SAN'a ekleyecektir.

0

Bu iş parçacığının biraz eski olduğunu biliyorum, ancak pencerede herkes için çalışıyorsa, dosyanın UTF-8 kodlu olduğunu kontrol edin, benim durumumda .cnf ile bir hata olduğunu belirten bir hata alıyordum Dosya, bu yüzden Notepad ++ üzerine açtım, dosya kodlamasını UTF-8'e ayarla, kaydedildi ve openssl komutunu tekrar çalıştırdı ve hile yaptı.