4.4 Configuring IIS client certificates

IIS has a several different mechanisms available for specifying client SSL certificate requirements:

Note: The user interface for configuring IIS Client Certificate Mapping Authentication has some quirks, which are important to understand in order to configure correctly.

4.4.1 Configuring IIS Client Certificate Mapping Authentication one-to-one mapping

To configure one-to-one mapping for IIS Client Certificate Mapping Authentication:

  1. In Internet Information Services (IIS) Manager, select the Default Web Site.

    Alternatively, select the website you created as described in section 4.4, Configuring IIS client certificates.

  2. Select Configuration Editor.

  3. From the Section drop-down list, select the following:

    system.webserver > security > authentication > iisClientCertificateMappingAuthentication

  4. From the From drop-down list, select ApplicationHost.config.

    The following screen shows the (default) disabled state where this feature is disabled (False).

  5. Set the following:

    • enabledTrue

    • manyToOneCertificateMappingsEnabledFalse

    • oneToOneCertificateMappingsEnabledTrue

  6. Select the oneToOneMappings option and click the browse button.
  7. In the Collection Editor dialog, click Add.
  8. In the certificate box, enter the Base 64 certificate.

    Note: This must be processed so that it fits on a single line, without any whitespace and without PEM headers.

    For more information, see:

    www.iis.net/learn/manage/configuring-security/configuring-one-to-one-client-certificate-mappings

  9. Set enabled to True.
  10. In the userName box, type the MyID Web Service user account name, and type the account password in the password box.

    This is the Windows user account to which the certificate will be mapped.

    Note: If you change the password on the MyID Web Service user account, you must update the password on this screen; the MyID Password Change Tool does not affect the configuration of client certificates.

  11. Close the dialog.

    The oneToOneMappings will now be updated to show how many certificates are mapped.

  12. Click Apply to save the changes.
  13. In the tree, select the virtual directory that is to use this rule for client certificate authentication, and select SSL Settings.

  14. Click the Require SSL option, then in the Client certificates list select the Require option and click Apply.
  15. In the tree, select the virtual directory, and select Authentication.

    • For websites or ASP.NET web services, disable all authentication mechanisms.

    • For WCF web services, you must have Anonymous Access enabled; without this option, IIS Client Certificate Mapping Authentication will not work.

To confirm that the web service is configured correctly, Test that the web service is inaccessible except when the configured client certificate is used to authenticate.

If testing with a browser it is advisable to connect with a private browsing option, since this enforces that a new session is authenticated; otherwise an authentication made before IIS was reconfigured may still be granting access.

Since the client certificates will expire, ensure there is a plan in place for renewing or replacing them before they expire, to ensure continuity of service.

For WCF web services, review the web.config settings for the web service; see section 5, Additional configuration for WCF web services.

4.4.2 Configuring IIS Client Certificate Mapping Authentication many-to-one mapping

This is identical to configuring one-to-one mapping, as described in section 4.4.1, Configuring IIS Client Certificate Mapping Authentication one-to-one mapping, except for the following:

Further information on configuring manyToOneMappings rules is available on the Microsoft website in Knowledge Base article 2026113 Configuring Many-to-One Client Certificate Mappings for Internet Information Services (IIS) 7.0 and 7.5.