MS Sertifika Hizmetleri, OpenSSL ile oluşturulan CA'ya Bağlı Olabilir mi?


16

Alan adım için bir kurumsal sertifika yetkilisi kurmak istiyorum. Böylece çeşitli amaçlarla sertifika verebilirim. Kök olarak çevrimdışı bir CA'ya sahip olmak ve kurumsal CA'mı bir bağımlı olarak ayarlamak için en iyi uygulamayı takip etmek istiyorum. Ancak bu görev için Windows'un tam bir kopyasını lisanslamak aptalca görünüyor.

Yapmayı umduğum şey, bir USB flash diske canlı dağıtım yüklemek ve daha sonra openssl'yi kurmak ve CA'mı flash sürücüye kurmaktır. Kök anahtarını / sertifikasını oluşturmaya hazır olduğumda, bilgisayarın ağ ile olan bağlantısını keseceğim ve daha sonra bu USB diskini bir ağa bağlı bilgisayarda tekrar kullanmayacağım.

Kullanılabilir olacak bir Windows kurumsal CA'sı için uygun bir CA sertifikası imzalayabilecek ve oluşturabilecek miyim? CA'yı oluşturmak ve alt CA sertifikasını doğru bir şekilde imzalamak için OpenSSL ile hangi seçenekleri kullanmam gerekir.

Web'de arama yapmaya çalıştım ve bu konuda bulabildiğim tek şey buydu. Ama 2008'den önce ve kişinin her birinin başarılı olduğundan tam olarak emin değilim.


Açık olmak gerekirse, aracın mutlaka OpenSSL olması gerekmez, ancak EJBCA gibi büyük bir CA çalıştırmak istemiyorum. Livecd / liveusb ortamında çalıştırılabilecek çok hafif bir CA arıyorum.
Zoredache

Yanıtlar:


14

Evet, gayet iyi çalışıyor; Windows sertifika yetkilisinin Windows olmayan bir köke bağımlı olarak çalıştırma konusunda hiçbir sorunu yoktur.

Enterprise modunda OpenSSL kökü ve Windows 2008 R2 alt sertifikası ile test edilmiştir.


MS CA'nın OpenSSL yapılandırmasında beklediği şeylerle güzel oynamak için birkaç şey:

  • Kendinden imzalı kök için bölümün x509_extensionsözelliği tarafından yapılandırılan bölümde, kök AIA ve CDP konumları kök sertifikaya uygulanmalıdır [req]. Bu çizgiler boyunca bir şey:

    authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
    crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
    
  • Belirli bir OpenSSL yapılandırması varsayılan olarak alt CA'lara izin vermez. İmzalı istekler için bunu değiştirin (elbette CA olmaması gereken istekler için bunun olmadığından emin olun). Bu bölümün x509_extensionsözelliği tarafından yapılandırılan [ca]bölümde olacaktır:

    basicConstraints=CA:TRUE
    certificatePolicies=2.5.29.32.0
    

Test etmek için bir CA yapacağız.

Kökünüzü oluşturun:

openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca

Yapılandırmanıza uyun ve [ca]OpenSSL yapılandırmanızın bölümünde gerekli dosyaları ve dizinleri oluşturun .

Her şey işlerin Microsoft tarafına geçmeye hazır; manuel imza ile Windows bağımlı CA oluşturun.

Sertifika isteğini OpenSSL sunucusuna yükleyin. Siz bu sırada kök sertifikayı indirin. Kullanıcının değil bilgisayarın güvenilir kökleri deposuna aktarın!

Alt sertifikayı verin:

openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)

Bu işe yaramadıysa, CA'nızın büyük olasılıkla config - yeni certs dizini, dizin dosyası, seri dosyası vb. İle ilgili bir sorunu vardır. Hata mesajını kontrol edin.

Gittiyse, işte o kadar. Eğer yapmadıysanız, bir CRL yapın ve yukarıda yapılandırdığınız CDP'ye koyun; Apache'yi yeni kurdum ve webroot'ta sıkıştım:

openssl ca -gencrl -out /var/www/root.crl

Ve sertifikanızı henüz yoksa AIA konumuna koyun:

cp /etc/ssl/certs/root.pem /var/www/root.pem

Yeni verilen alt sertifikayı indirin ve Sertifika Yetkilisi MMC ek bileşeniyle CA'ya yükleyin. Güven veya onaylama ile ilgili herhangi bir sorunu ele alacaktır, ancak bunu almanın ahlaki bir itirazı yoktur.

Sonuç; Enterprise PKI ek bileşeninden şikayet etmeyen OpenSSL Generated Certificate, özniteliklerde bir bilgi içeren çalışan bir Windows CA'sı .

İşçi ca


6

Ne elde ettiğinizi görüyorum, ancak OpenSSL'nin iş için bir araç olduğunu düşünmüyorum. Bu işleve daha fazla odaklanan ve kullanabileceğiniz özel belgelere sahip EJBCA gibi Açık Kaynak Sertifika Yetkilisi projelerine bakmak isteyebilirsiniz .

Konseptin neden işe yaramadığına dair bir neden görmüyorum, çünkü tek yaptığınız bağımlı CA'nın sertifikasını imzalamak. Bunu sizin için genel bir CA'ya ödüyor olsaydınız, hangi sunucuyu kullandıklarını bilmeyecek ya da umursamayacaksınız.

İlgilenmeniz gereken tek şey:

  • sertifikanızı astınızın oluşturduğu CSR'den imzalayabilirsiniz
  • sonuç bağımlıya yüklenebilir
  • hedeflediğiniz herhangi bir istemciye güvenilir olarak yüklenebilecek bir kök imzalama sertifikanız var
  • bir yerde sunulan bir iptal listesi oluşturabilirsiniz

Bunu yaptığımı söyleyemem, ancak bir Windows kutusundan CSR oluşturmak için belgeleri takip ederseniz, ardından CSR'den bir .p7k sertifikası oluşturmak için CA belgelerinizi takip ederseniz eminim, o zaman iyi olmalısınız.

Bu arada - CA'nızı, önyükleme diski yerine Hyper-V veya VMware gibi popüler bir hipervizör için sanal bir makine olarak oluşturmanızı, bunu halefinizin bulabileceği bir yerde çok güvenli bir şekilde sakladığınızdan emin olun ve döndürün çalıştığından emin olmak için periyodik olarak çevrimdışı duruma getirin veya yeni medyaya / teknolojiye aktarın. Kök CA'nın ömrü 10 veya 20 yıl olabilir ...


+1 OpenSSL, CA oluşturmak için önde gelen bir araç değildir, ancak genel olarak çalışır. Bir Windows Enterprise CA için alt CA sertifikası vermedim, ancak neden işe yaramayacağını hayal edemiyorum (MS geçmişte daha korkunç rekabet karşıtı eylemlerde bulunmuş olsa da). VM olarak CA için büyük +1. Kök sertifikasının ikinci bir kopyasını tutmak iyi bir fikirdir (kağıt üzerindeki Base64 çok dayanıklıdır ve kasa / kasa / vb
Chris S

Herhangi bir NIC olmadan bir VM kurabileceğimi ve CSR'leri açmak ve imzalamak için sanal bir disket sürücüsü kullanabileceğimi fark ettiğimde kendimden çok memnun kaldım. Sneakernet 21. Yüzyıl Sanal parlaklığıyla yeniden doğdu!
dunxd
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.