Apache2 için çok alanlı kendinden imzalı bir sertifika nasıl oluşturulur?


15

Birkaç sanal ana bilgisayarımın olduğu küçük bir özel web sunucum var. Her bir sanal ana bilgisayara sertifika atamanın imkansız olduğunu biliyorum, çünkü sunucu sadece SSL bağlantısı kurulduktan sonra hangi sanal ana bilgisayarın talep edildiğini öğrenir. Ancak birkaç alanı listeleyen tek bir SSL sertifikasına sahip olmak mümkün müdür? Veya en azından * .example.com gibi bir joker alan. Evetse, böyle bir kendinden imzalı sertifika oluşturmak için hangi Linux komutlarını yazmam gerekir?

Eklendi: Açıklamak için - Tüm sanal ana bilgisayarlar için sadece bir IP adresim var.

Yanıtlar:


11

Aşağıdakiler sizin için çalışmalıdır:

cp /etc/ssl/openssl.cnf /tmp/
echo '[ subject_alt_name ]' >> /tmp/openssl.cnf
echo 'subjectAltName = DNS:www.example.com, DNS:site1.example.com, DNS:site2.example.com' >> /tmp/openssl.cnf

openssl req -x509 -nodes -newkey rsa:2048 \
  -config /tmp/openssl.cnf \
  -extensions subject_alt_name \
  -keyout www.example.com.key \
  -out www.example.com.pem \
  -subj '/C=XX/ST=XXXX/L=XXXX/O=XXXX/OU=XXXX/CN=www.example.com/emailAddress=postmaster@example.com'

Sonuç:

$ openssl x509 -in www.example.com.pem -text -noout
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 17965603478303142689 (0xf952a52d7bc7f321)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=XX, ST=XXXX, L=XXXX, O=XXXX, OU=XXXX, CN=www.example.com/emailAddress=flb.helpdesk@morpho.com
        Validity
            Not Before: Apr  3 15:34:27 2015 GMT
            Not After : May  3 15:34:27 2015 GMT
        Subject: C=XX, ST=XXXX, L=XXXX, O=XXXX, OU=XXXX, CN=www.example.com/emailAddress=flb.helpdesk@morpho.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c6:e8:17:93:a4:8f:08:11:61:11:1b:cc:17:52:
                    b6:33:39:33:0e:94:3f:ac:ae:dd:70:4b:e6:d6:b0:
                    11:f1:93:b4:3d:dc:34:99:27:b6:45:4b:13:0c:69:
                    1e:11:d2:b9:38:5f:e0:d1:b0:58:e4:3c:c0:9f:58:
                    3d:5d:fa:67:3e:3c:05:1b:e3:86:20:18:d5:d7:83:
                    77:b5:0c:1d:9a:26:96:10:3f:2c:e5:ce:ed:6e:99:
                    5a:35:3e:06:f0:52:aa:72:5e:c0:33:7c:c8:16:f9:
                    6b:3e:7d:7e:5a:1f:cf:11:63:4d:ad:bf:77:bd:e3:
                    0f:8f:24:1d:f5:c8:06:ab:d9:62:8d:13:56:62:a9:
                    b8:77:c0:11:b6:ff:a7:63:93:a7:22:c2:41:48:6f:
                    bd:42:10:00:33:14:da:3b:ca:e0:07:c2:b6:50:55:
                    f0:4d:6b:0d:eb:87:a8:bd:4d:c6:1b:20:d8:27:68:
                    d0:e2:3b:32:91:b8:8e:cf:25:06:bf:43:fd:8f:96:
                    fa:eb:af:0f:e1:5c:47:06:84:8b:f4:35:0a:a8:f3:
                    7e:af:34:50:7f:62:bc:5e:53:09:90:97:27:cf:9a:
                    56:d7:f6:af:32:92:c4:c9:ab:90:6e:a6:09:20:0b:
                    46:28:22:0b:45:71:b9:17:77:d8:da:63:24:27:5c:
                    60:a5
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Alternative Name: 
                DNS:www.example.com, DNS:site1.example.com, DNS:site2.example.com
    Signature Algorithm: sha256WithRSAEncryption
         83:ce:18:74:f9:17:92:91:bd:82:13:ac:64:e7:de:9e:38:d7:
         26:0f:2d:3e:8f:f2:17:c5:fc:17:06:fb:27:e7:0a:b7:f2:8e:
         bb:18:6e:f4:4c:17:e8:8d:dc:51:d5:d2:e6:1c:72:e4:28:75:
         a2:79:ae:b6:b6:8c:ec:08:08:4d:73:79:b7:22:26:40:ac:38:
         5c:f2:2b:4f:44:60:55:db:90:b3:63:74:ad:e7:26:12:ad:0d:
         ec:4a:cd:4f:7a:a0:54:62:f5:a7:bc:80:c2:fa:34:43:3c:f1:
         aa:f7:6e:4e:e1:80:fb:c7:cc:44:3a:2b:a4:6c:5b:0f:3f:83:
         6e:8d:d5:28:cf:6c:f0:c6:40:4d:c4:d4:3f:9c:9d:a4:47:a7:
         27:d1:5b:2b:5f:0d:bd:3f:7c:2e:19:fa:bc:24:bd:1f:64:81:
         8b:a4:e3:33:10:35:55:f9:73:2d:8b:e8:b8:d7:e3:49:0c:35:
         af:53:df:48:d8:df:ce:b1:5f:6c:74:1c:74:89:45:2e:28:2c:
         1f:fe:d8:a4:44:9c:c7:bc:d8:6a:46:38:df:e3:d0:05:37:27:
         d0:08:e5:93:b8:0e:d9:d9:dd:7c:28:75:18:27:be:4e:72:47:
         13:b9:a2:93:0e:83:e9:b8:49:f4:75:ad:e0:0f:9b:e5:96:4f:
         33:33:f1:27

Kendinden imzalı yerine istek istiyorsanız -x509 yerine -new ve -extensions ile -reqexts yazın.


Birinin daha uzun süre sona ermesi gerekiyorsa, örneğin 10 yıl, ekleyin-days 3650
Maris B.

3

DomainAltName: dNSName adları alanında etki alanı.com ile CN ve * .etkialanı.com olarak bir sertifika oluşturun .

Olarak openssl, uzantılarına bu ekleyin:

subjectAltName          = DNS:*.domain.com

KSS kullanmadan bunu nasıl yaparsınız?
Walf

3

AlberT'nin cevabını genişletmek için:

http://blog.loftninjas.org/2008/11/11/configuring-ssl-requests-with-subjectaltname-with-openssl/

Joker karakterli alan adı kullanmak zorunda değilsiniz. İhtiyacınız olan tüm ana bilgisayar adlarını konu alt adları olarak listeleyebilirsiniz ve tüm ana tarayıcılarda çalışmalıdır.


2
Maalesef bu bağlantı öldü. WayBackMachine hala bu blog yazısının bir kaydını tutuyor .
Jpsy

Zamanında bu yazı, yukarıda loftninjas.org bağlantı aktif (yine) 'dir.
Mikhail T.

0

Her şeyden önce - her bir sanal ana bilgisayar için bir sertifika atayabilirsiniz - anahtar, her sanal ana bilgisayar için farklı özel (ve dünya erişilebilir hale getirmek istiyorsanız harici / genel) ip adresi yapmaktır.

Ancak evet - alternatif olarak, sanal ana makineleriniz * .example.com ise bir joker karakter sertifikası atayabilirsiniz.

Komut için - google'dan birçok sonuç var - sadece buradan bir örnek vereceğim :

http://www.justinsamuel.com/2006/03/11/howto-create-a-self-signed-wildcard-ssl-certificate/

Ortak Ad için * .example.com girdiğinizden emin olun.


1
Mesele bu - sadece bir IP adresim var. Sanırım bu konuda net değildim.
Vilx-

@coolwater - Kendi / 16 bloğumuzda olacak bir üretim sunucusu kuruyorsam iyi bir tavsiye . Sadece beş statik IP veren küçük işletme bağlantılarına sahip olanlar için, gerçekten bir seçenek değil. Bunu, her IP için bir tane olmak üzere beş SSL Vhost ile sınırlandırarak başa çıktım.
Jason Antman
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.