openssl req -new varsayılan subj değerleri olan


4

Ülke Adı, Eyalet veya İl Adı, vb. fakat Yine de Ortak Ad'ı (FQDN) istemesini istiyorum. Şimdiye kadar şöyle bir şey var:

openssl req -new -sha256 -key example.com.key -out example.com.csr -subj "/ C = ABD / ST = Ohio / L = Columbus / O = Widget Inc / OU = Bazı Birimler"

Ancak bu beni Ortak ad için uyarmaz. Bunu yapmanın doğru yolu nedir?


FQDN değil yerleştirilmiş Yaygın isim . Bu uygulama yıllar önce hem IETF hem de CA / B Forumları tarafından onaylanmamıştır. Bunun yerine, ana bilgisayar adları (IP adresleri dahil) Konu Alternatif Adı . İçine kolay bir ad verin. Yaygın isim , sevmek Örnek Web Sunucusu çünkü kullanıcı için birçok araçta gösteriliyor.
jww

Ayrıca bakınız Sertifika Yetkilinizle Sertifika İmzalama İsteğini nasıl imzalarsınız? ve Openssl ile kendinden imzalı bir sertifika nasıl oluşturulur? X.509 sunucu sertifikaları, adların nasıl sunulduğu ve çeşitli kuralların nereden geldiği hakkında pek çok arka plan bilgisi sağlar.
jww

Yanıtlar:


5

İle komut satırında yapabilirsiniz read ve sonuç değişkenini kullanarak openssl komut:

read -p "FQDN? " cn; openssl req -new -newkey rsa:2048 -sha256 -nodes -keyout $cn.key -subj "/CN=$cn\/emailAddress=admin@$cn/C=US/ST=Ohio/L=Columbus/O=Widgets Inc/OU=Some Unit" -out $cn.csr

Bu sık yaptığınız bir şeyse, bir işlev haline getirin ve bilgisayarınıza ekleyin. .bashrc istemini bir argümanla değiştirmenize izin veren dosya:

function csr { openssl req -new -newkey rsa:2048 -sha256 -nodes -keyout $1.key -subj "/CN=$cn\/emailAddress=admin@$1/C=US/ST=Ohio/L=Columbus/O=Widgets Inc/OU=Some Unit" -out $1.csr }

Öyleyse, ne zaman istersen onu kıskandır:

csr example.com

Aşağıdaki openssl.conf dosyası yok neredeyse aynı şey:

[req]
default_bits=2048
encrypt_key=no
default_md=sha256
distinguished_name=req_subj
[req_subj]
commonName="Fully Qualified Domain Name (FQDN)"
emailAddress="Administrative Email Address"
countryName="Country Name (2 letter code)"
countryName_default=US
stateOrProvinceName="State Name (full name)"
stateOrProvinceName_default=Ohio
localityName="Locality Name (e.g., city)"
localityName_default=Columbus
organizationName="Organization Name (e.g., company)"
organizationName_default=Widgets Inc
organizationalUnitName="Organizational Unit Name (e.g., section)"
organizationalUnitName_default=Some Unit

Sonra ikisinden birini ayarla OPENSSL_CONF bu dosyaya ortam değişkeni

export $OPENSSL_CONF=~/.dotfiles/openssl.conf

veya CLI'deki anahtar ile belirtin

openssl req -new -config openssl.conf -keyout example.key -out example.csr

Diyorum neredeyse çünkü hala bu öznitelikleri soruyor, ancak şimdi onlar varsayılan Return etki alanını ve e-postanızı belirledikten sonra sona


Bu harika bir cevap. Bunun için teşekkürler.
Kurt Mueller

1

Bunu sadece komut satırı değerlerinden yapmanın bir yolu olup olmadığından emin değilim. Bunu yapmak için her zaman config dosyasını kullandım. Örneğin, konfigürasyonunuzda varsayılanları ayarlama girişleri şuna benzeyebilir:

policy = policy_anything

# For the 'anything' policy, which defines allowed DN fields
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
commonName = supplied
name = optional
emailAddress = optional

####################################################################
# request handling

[ req ]
default_bits = 2048
default_keyfile = private/key.pem
default_md = default
distinguished_name = standard_dn

####################################################################
# DN (Subject) handling

[ standard_dn ]

countryName = Country Name (2 letter code)
countryName_default = US
countryName_min = 2
countryName_max = 2

stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = California

localityName = Locality Name (eg, city)
localityName_default = Beverily Hills

commonName = Common Name (eg, YOUR name)
commonName_default = John Smith
commonName_max = 64

emailAddress = Email Address
emailAddress_default = jhn.smith@somewhere.com
emailAddress_max = 64
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.