IIS'de yalnızca belirli istemci sertifikaları gerektir


3

İstemci sertifikaları gerektiren bir çözüm uyguluyorum. IIS 7.5 ve ASP.Net 4 WCF servislerini kullanıyorum.

SSL Ayarlarını SSL İste'ye ayarlıyorum ve istemci sertifikaları istiyorum. Şimdiye kadar iyi görünüyor. Müşteri sertifikalarının kullanımında yeniyim çünkü biraz araştırma yapıyorum ve müşteri sertifikası doğrulama işlemiyle ilgili biraz açıklama yapmaya çalışan bir Microsoft destek makalesi ile karşılaştım . Belirtir:

Sunucu bir sertifika istediğinde, istek, sunucunun güvendiği sertifika yetkililerinin bir listesini içerir. Ardından müşteri bu listeyi, müşterinin güvendiği ve eşleşenlerin bir listesini yaratan sertifika yetkilileri listesiyle karşılaştırır. Daha sonra, müşteri bu listeyi sahip olduğu müşteri sertifikaları ile karşılaştırır ve varsa sertifikaların hangi müşteri ve sunucunun güvendiğini sertifika yetkilileri tarafından verilmiş olduğunu belirler.

Görünüşe göre müşteri her iki tarafın da güvendiği sertifikalar gönderecek. İlgilendiğim şey, IIS veya WCF hizmetimi, özellikle bu WCF hizmetinin amacına yönelik kendi sertifika otoritemizden ürettiğimizler gibi belirli müşteri sertifikalarını kabul edecek şekilde yapılandırabilirim.

VeriSign’dan müşteri sertifikası kullanan veya başka bir amaç için tasarlanan sertifika otoritemizden birini kullanan birini durduran nedir?


İstemci bir sertifika göndermiyor. Yerel sertifikalara göre doğruladıktan sonra sunucu tarafından sunulan sertifikalardan birini kabul eder.
Brian

2
@Brian - Anlamıyorum. müşteri sertifikalarından bahsediyoruz. Sunucu tarafı, istemcinin sunucuya bir istemci sertifikası sağlayarak kimliğini kanıtlamasını gerektirir, değil mi? Müşteri nasıl sertifika göndermiyor?
Jeremy

@ Jeremy bu soruna bir çözüm buldunuz mu?
ahsteele

@ ahsteele ben yapmadım. Çevremizde, ters proxy mekanizması kullanıyoruz (F5 satıcıdır) bu yüzden müşteri sertifikasını orada uygularız. Müşteri sertifikasını yayınladığımızdan emin olmak için bir senaryo yazabiliriz. Bununla birlikte, sertifikanın o kullanıcı için bir sertifika olduğunu doğrulamamıza izin vermiyor. Bunu IIS'de nasıl yapacağınızı öğrenirseniz, ben de bilmek isterim ... :)
Jeremy

@ Jeremy, gümüş merminin olduğunu umuyordu. Senaryonuzda, kullanıcının hem sunucunun hem de istemcinin güvendiği tüm CA'lardan gelen sertifikaların bir listesini sunduğunu tahmin ediyorum.
ahsteele

Yanıtlar:


0

Bu gönderi, sunucunun güvendiği bir istemci sertifikası gerektiren bir web sitesini başarıyla kurduğunuzu varsaymaktadır.

Zaten sahip değilseniz, IIS ve IIS Express'te istemci sertifikaları oluşturmak ve bunlara izin vermek için bu gönderiye bakın: https://stackoverflow.com/a/57311258/3850405

Bunun çalışması için bazılarının IIS Client Certificate Mapping Authenticationetkinleştirilmesi gerektiğini söylüyorlar, ancak bunu Windows Server 2012 R2 Datacenter'da denedim ve yine de çalıştı. Ancak bunun eklemek iyi olduğunu düşünüyorum ve önerilen yaklaşım böylece işleviyle eklemek olduğunu Add Roles and Featuresya Turn Windows features on or offda işletim sistemi bağımlı.

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/iisclientcertificatemappingauthentication/onetoonemappings/

Sitenize IIS Yöneticisi'nden giderek başlayın ve Yapılandırma Düzenleyici'yi tıklayın.

Oradan Bölüme gidin system.webServer/security/authentication/iisClientCertificateMappingAuthenticationya da dizeyi Bölüm alanına yapıştırın.

Etkin olarak ayarlayın Trueve ardından bir ekleyin oneToOneMappings.

görüntü tanımını buraya girin

Sertifika özelliği için değer elde etmek için mmc.exe dosyasını başlatın ve istemci sertifikanızı verin. Mine, Yerel Bilgisayar için Kişisel sertifikalarında bulunmaktadır.

File -> Add or Remove Snap-ins -> Certificates -> Add -> Computer account -> Local computer

Certificates (Local Computer) -> Personal -> Certificates -> Right click on your client certificate -> All tasks -> Export...

Sertifika Verme Sihirbazı açıldığında:

  • Sonrakine tıkla.
  • Hayır, özel anahtarı verme, ardından İleri'ye tıklayın.
  • Dışa aktarma formatı için Base-64 kodlu X.509 9 (.CER) öğesini seçin, ardından İleri'ye tıklayın.
  • Sertifikayı masaüstünüze
    MyCertificate.cer olarak kaydetmeyi seçin , ardından İleri'ye tıklayın.
  • Son'u tıklayın; Dışa aktarmanın başarılı olduğunu söyleyen bir iletişim kutusu görmelisiniz.

Windows Not Defteri'ni kullanarak verdiğiniz MyCertificate.cer dosyasını açın:

  • Metnin başından "----- BEGIN CERTIFICATE -----" harfini kaldırın.
  • Metnin sonundan "----- END CERTIFICATE -----" harfini kaldırın.
  • Tüm satırları tek bir metin satırında birleştirin. İhtiyacınız olan veri budur.

Bunun daha hızlı olduğunu düşündüğümden genellikle Notepad++hepsini kullanıp kaldırırım \r\n.

Not Defteri ++ 'da satır çizgilerini nasıl kaldırırım?

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/iisclientcertificatemappingauthentication/onetoonemappings/

Sonra son adım, o bilgisayardaki / sunucudaki bir kullanıcı için yerel bir kullanıcı adı ve parola eklemektir. Sonunda böyle bir şeye benzemelidir.

görüntü tanımını buraya girin

Değerleri kaydedin ve web siteniz belirli bir müşteri sertifikası gerektirecektir.


-1

Bu bağlantının aradığınız çözümü sağladığına inanıyorum. Ve oldukça ayrıntılı görünüyor. Önümüzdeki birkaç gün içinde deneyeceğim ve bulgularımı geri alacağım.

https://blogs.msdn.microsoft.com/asiatech/2014/02/12/how-to-configure-iis-client-certificate-mapping-authentication-for-iis7/


Süper Kullanıcıya Hoşgeldiniz! Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantıyı sağlamak tercih edilir.
bertieb
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.