Назад | Перейти на главную страницу

Проверка подлинности сопоставления сертификата клиента iis

Я гуглил это часами. Я не могу заставить свое отображение работать с определенными полями сертификата. Fx этот пример кода:

<iisClientCertificateMappingAuthentication enabled="true" manyToOneCertificateMappingsEnabled="true">
  <manyToOneMappings>
    <add name="Contoso Employees"
         enabled="true"
         permissionMode="Allow"
         userName="Username"
         password="[enc:AesProvider:57686f6120447564652c2049495320526f636b73:enc]">
      <rules>
        <add certificateField="Subject"
             certificateSubField="O"
             matchCriteria="MyCompany A/S CVR:12345"
             compareCaseSensitive="true" />
      </rules>
     </add>
   </manyToOneMappings>
</iisClientCertificateMappingAuthentication>

Это не работает. Я подозреваю специальные символы в matchCriteria = "MyCompany A / S CVR: 12345". Если я сопоставлю его с certificateSubField = "C" и matchCriteria = "DK", тогда он будет работать. Я также пробовал использовать эту комбинацию matchCriteria = "MyCompany *", где я использую подстановочный знак charachter *, но она по-прежнему не работает. Если я использую только *, как в matchCriteria = "*", тогда он работает, но опять же, это бесполезное совпадение.

Я проверил с помощью certutil, какое значение он дает для подполей CN, O и C. CN и O имеют одинаковое значение: MyCompany A / S CVR: 12345 Оба они содержат пробелы и специальные символы.

Как я могу сделать это сопоставление в II 7.5? Я должен упомянуть, что это сопоставление с тем же значением отлично работает в IIS 6.

Я сам разобрался. Это связано с тем, что сопоставление iisclientcertificate не выполняется, если поставщик сертификата, субъект находятся в строке в кодировке UTF8. Это известная проблема с IIS 7 и 7.5.

Это исправление от Microsoft. Взгляните на статью базы знаний 2597665:

«Правило сопоставления сертификатов в IIS не работает для клиентского сертификата с атрибутами кодировки Unicode в Windows Server 2008, Windows Vista, Windows Server 2008 R2 или Windows 7»