Mevcut Sertifika İmzalama İsteğine (CSR) Konu Alternatif Adları (SAN) Ekleme


9

Herhangi biri bana mevcut bir CSR'ye bir dizi Konu Alternatif İsmini nasıl eklediğimi söyleyebilir mi?

SAN'larla bir CSR oluşturma veya imzalama sırasında SAN'lar ekleme hakkında konuşmuyorum - bunların her ikisini de nasıl yapacağımı biliyorum.

Arka plan: Sahip olduğumuz sorun, HP blade kasasının CSR oluşturmanıza izin vermesi, ancak yalnızca tek bir SAN'a izin vermesidir. Başka bir yerde oluşturulan bir CSR'yi kullanamayız, çünkü anahtarı blade şasisine yüklemenin (bulabildiğim) hiçbir yolu olmadığından sonuçtaki sertifikayı kullanamadık.

CA'mızın standart süreci SAN'ların imzalanmasına izin vermiyor. Denemeye hazırlar, ancak sonunda bir çözüm bulmaya çalışıyorum, çünkü bu bizim için standart olmayan bir sürece sahip olmalarına güvenmemiz gerekmeyecek - standart dışı bir süreç kullanmaları gerekiyorsa benim deneyimime göre hayat sonunda zorlaşacak. Örneğin, standart dışı işlemi bilen bir personel izin vb. Nedeniyle mevcut olmadığında.

Mevcut yöntem, web gövdesi üzerinden bladechassis yerleşik yöneticisine bağlanmak ve tek bir CN ile CSR oluşturmaktır.

Web gui, CSR'de yalnızca tek bir SAN'a izin verir.

Ardından, openssl yapılandırmasında aşağıdaki stanza ile kendimiz imzalarız:

[ v3_ca ]
subjectAltName = "DNS:bladesystem8,DNS:bladesystem8.services.adelaide.edu.au,DNS:bladesystem8-backup,DNS:bladesystem8-backup.services.adelaide.edu.au"

Ortaya çıkan sertifikada ekstra SAN'lar bulunur.


Şu anda bıçak kasası üzerindeki delikleri nasıl üretiyorsunuz? Bağlamak için hangi yöntemi kullanıyorsunuz vb .. Hangi model bıçak kasası?
Eli

Şasi bir c7000. Evet, şu anda şaside CSR'ler oluşturuyoruz ve SAN'ı işaret zamanında ekliyoruz, ancak bu kendinden imzalı sertifikalar için.
Jason Tan

Şu anda ona bağlanmak için hangi yöntemi kullanıyorsunuz ve bunun için sertifika oluşturma süreciniz nedir?
Eli

Ana soruyu mevcut yöntemi içerecek şekilde düzenledim.
Jason Tan

1
Başka bir makinede oluşturup dışa aktarırsanız Sertifika ve Özel Anahtarı içe aktarabilir misiniz?
Clint

Yanıtlar:


15

Kasanız SAN eklemeyi desteklemiyorsa, anahtarı kasadan çıkarmanız ve CSR'yi openssl ile oluşturmanız gerekir.

Emin olun req_extensions = v3_reqiçinde uncommented [ req ]bölüm.

Ekle subjectAltNameiçin [ v3_req ]bölüm.

Yeni bir CSR oluşturun.

openssl req -new -key extracted_c7000.key -out your_new.csr

Mevcut bir CSR'yi düzenleyemezsiniz.


Cakemox ne dedi. Bir sertifikayı (yani, imzalı bir CSR) imzalandıktan sonra düzenleyebiliyorsanız, sertifika yetkililerinin tüm amacını ortadan kaldıracaktır.
MadHatter

İmzalandıktan sonra KSS'yi düzenlemek istemiyorum - bu sizin puprozu yenmek gibi. KSS oluşturulduktan sonra düzenlemek istiyorum, ancak imzalanmadan ÖNCE. Openssl kullanarak imzalamadan önce bir CSR'nin bölümlerini düzenlemek kesinlikle mümkündür.
Jason Tan

Anahtarı indirebilseydim. Üzgünüm orijinal soruda bahsetmedim, ama anahtarı indirmek için bulamadım. Bana anahtarı nasıl indireceğimi anlatabilecek birine lütuf ödemek kadar mutlu olurum.
Jason Tan

Özellikle bir "openssl req -subj" seçeneği olmak üzere openssl kullanarak imzalamadan önce bir CSR'nin bölümlerini düzenlemek kesinlikle mümkündür. Ancak bu, v3 SAN uzantısını eklemeyi söyleyebildiğim kadarıyla, sadece ek CN'ler içeren yeni bir konu satırı belirtmenize izin verecektir.
Jason Tan

2
CSR, makinenin özel anahtarı tarafından imzalanır, bu nedenle oluşturulduktan sonra düzenleyemezsiniz (veya artık imzalanamaz). Ancak CA'nın kamu sertifikasına konulan alanları düzenlemesi mümkündür; SAN alanını değiştirmenin tek yolu budur (bunu herkese açık bir CA'ya gönderiyorsanız üzerinde hiçbir kontrolünüz yoktur).
Chris S

0

Önemli not: Tüm bunlar biraz spekülatiftir, bu yüzden kodun derinliklerinde iseniz ve söylediklerimle aynı fikirde değilse, koda inanın. CA uzmanı değilim, sadece bir TV'de oynuyorum. Bahsedilen:

KSS'lerin bir özelliği olarak zor olacak. Programlı olarak bir CSR oluşturmanın son adımı, oluşturduğunuz her şeyi hash etmek ve ardından özel anahtarla imzalamaktır. Bu nedenle, bu nitelikleri CSR metnine ekleyebilmenize rağmen, imza içerikle eşleşmez, bu nedenle hiçbir CA imzalamaz.

Ancak sizin durumunuzda CA'yı kontrol edersiniz (veya en azından temas halindesiniz). Bu size iki seçenek sunar:

  1. CA'ya CSR'deki imzayı açıkça göz ardı etmesini ve yine de bir sertifika vermesini isteyebilirsiniz.
  2. CA sorununa, istenenden farklı bir sertifika verebilirsiniz (örneğin, öznitelikler ekleyerek).

Bunlardan # 1 çok kolay görünüyor. Bunu yapmak için OpenSSL'deki kurcalamaya karşı mühürü kırmanız gerekecek, ancak biraz daha kolay hale getirecek bazı işlevlere sahip. KSS'yi nasıl parçalayacağınızı gösteren asn1parse ile başlayacağım.


Daha fazla araştırmada, # 2 seçeneği de oldukça basittir ve bir dizi CA tarafından yapılır (örn . SAN olarak bir sertifikaya eklemek site.comiçin www.site.com).
BMDan

0

Cakemox'un cevabı, bir şekilde özel anahtarın bir kopyasını alabiliyorsanız kesinlikle en kolay olsa da, temel olarak bir "Kayıt Aracısı" sertifikası kullanarak CSR'yi yeniden imzalayamamanın başka bir yolu vardır.

Bu css-security.com blog yazısı tüm cesur ayrıntılara sahiptir. Ancak sürecin üst düzey genel görünümü şöyle:

  • Kayıt Aracısı Sertifikası Alın
  • SSL sertifikası şablonunu, düzenleme için EA sertifikası gerektirecek şekilde değiştirme
  • SAN Bilgisine ihtiyaç duyan bir CSR edinin
  • SAN bilgilerini eklerken CSR'den istifa etmek için EA sertifikasını kullanın

Bunu şahsen denediğimde, sertifika şablonunu değiştirme hakkındaki bölümü atladığımdan eminim. Kendiniz için bir Kayıt Aracısı sertifikası oluşturabileceğinizi varsayarsak, gerçek süreç şuna benzer.

İçinde SAN uzantısı bilgileri bulunan bir san.inf oluşturun

[Extensions]
2.5.29.17="{text}dns=mysan1.example&dns=mysan2.example"

İsteği yeniden imzala

certreq -policy -config "myca.example\CA" orig-request.csr san.inf corrected-request.csr

Düzeltilmiş isteği gönder

certreq -submit -config "myca.example\CA" -attrib "CertificateTemplate:MyTemplate" corrected-request.csr

Ve sonra düzenleme işlemine normal şekilde devam edin.

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.