iis ssl certificate client-certificates

iis - Error HTTP 403.16-problema de confianza del certificado de cliente



ssl certificate (3)

En mi caso, había estado agregando el certificado raíz al almacén de certificados del "usuario actual" en el servidor y estaba recibiendo el error 403.16.

Al agregar mi certificado raíz al almacén Trusted Root Authorities para la máquina local se resolvió el problema.

Siga los pasos a continuación en el servidor que ejecuta IIS.

Para Windows Server 2008 R2:

  1. Haga clic derecho en el archivo de certificado y seleccione ''Instalar certificado''. Haga clic en Siguiente.
  2. Seleccione ''Colocar todos los certificados en la siguiente tienda'' y haga clic en ''Examinar ...''
  3. Marque ''Mostrar tiendas físicas''
  4. Expanda ''Autoridades de certificación de raíz de confianza'' y seleccione ''Computadora local''. Haga clic en Aceptar.
  5. Haga clic en Siguiente / haga clic en Finalizar.

Para Windows Server 2012 R2:

  1. Haga clic derecho en el archivo de certificado y seleccione ''Instalar certificado''.
  2. Seleccione ''Máquina local''. Haga clic en Siguiente.
  3. Seleccione ''Colocar todos los certificados en la siguiente tienda'' y haga clic en ''Examinar ...''
  4. Seleccione ''Autoridades de certificación de raíz de confianza''. Haga clic en Aceptar.
  5. Haga clic en Siguiente / haga clic en Finalizar.

Para Windows 7:

  1. Inicio -> Ejecutar -> mmc.exe
  2. Archivo -> ''Agregar o quitar complementos''. Seleccione ''Certificados'', haga clic en ''Agregar>'' y seleccione ''Cuenta de equipo'' y luego ''Equipo local''. Haga clic en Finalizar / Aceptar
  3. Expanda Certificados (equipo local) -> Entidades de certificación raíz de confianza -> Certificados. Haga clic derecho en Certificados y seleccione Todas las tareas -> Importar.
  4. Seleccione el archivo de certificado y haga clic en siguiente.
  5. Seleccione ''Colocar todos los certificados en la siguiente tienda'' y haga clic en ''Examinar ...''
  6. Marque ''Mostrar tiendas físicas''
  7. Expanda ''Autoridades de certificación de raíz de confianza'' y seleccione ''Computadora local''. Haga clic en Aceptar.
  8. Haga clic en Siguiente / haga clic en Finalizar.

Estoy intentando implementar la autenticación de certificado de cliente en IIS 8. He implementado mi configuración en una máquina de desarrollo y verifiqué que funciona como se esperaba. Sin embargo, después de configurar el servidor, cada vez que navego al sitio y se me solicita el certificado del cliente, lo selecciono y recibo inmediatamente el error 403.16. El registro de solicitudes fallidas muestra el código de error 2148204809 y el mensaje "Se procesó una cadena de certificados, pero terminó en un certificado raíz en el que el proveedor de confianza no confía".

Tengo un certificado de cliente válido y también un certificado de CA válido. El certificado CA se instala en Trusted Root Authorities en la cuenta de la computadora tanto en el servidor como en la máquina cliente, y el certificado del cliente se instala en el área Personal de la cuenta del usuario actual en la máquina cliente.

El certificado de cliente está firmado directamente por la CA raíz y, como dije, ambos son válidos. No hay otros certificados en la cadena y no hay certificados intermedios en el área de Autoridades Raíces Confiables.

La configuración de IIS tiene sslFlags = SslNegotiateCert y iisClientCertificateMappingAuthentication está habilitado.

El servidor no está configurado para enviar una CTL y tenemos SendTrustedIssuerList = 0.

No puedo ver por qué no se debe confiar en el certificado de cliente.


Tengo este error en IIS Express:

Error HTTP 403.16 - Prohibido

Su certificado de cliente no es de confianza o no es válido.

Mirando los TraceLogFiles vi el siguiente error:

<RenderingInfo Culture="en-US"> <Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode> <Keywords> <Keyword>RequestNotifications</Keyword> </Keywords> <freb:Description Data="Notification">BEGIN_REQUEST</freb:Description> <freb:Description Data="ErrorCode">A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. (0x800b0109)</freb:Description> </RenderingInfo>

Resultó que cuando instalé Razer Synapse la instalación también chromasdk.io un certificado para chromasdk.io en las chromasdk.io de certificación raíz de confianza en Cuenta de equipo -> Equipo local. Saqué esto y luego todo funcionó.


Windows 2012 introdujo validaciones de almacén de certificados más estrictas. De acuerdo con KB 2795828: el servicio de front-end de Lync Server 2013 no puede iniciarse en Windows Server 2012 , el almacén de Autoridades de certificación de raíz de confianza (es decir, la raíz) solo puede tener certificados autofirmados. Si esa tienda contiene certificados no autofirmados, la autenticación del certificado de cliente bajo IIS devuelve un código de error 403.16.

Para resolver el problema, debe eliminar todos los certificados no autofirmados del almacén raíz. Este comando de PowerShell identificará certificados no autofirmados:

Get-Childitem cert:/LocalMachine/root -Recurse | Where-Object {$_.Issuer -ne $_.Subject}

En mi situación, trasladamos estos certificados no autofirmados a la tienda de las Autoridades de certificación intermedias (es decir, CA):

Get-Childitem cert:/LocalMachine/root -Recurse | Where-Object {$_.Issuer -ne $_.Subject} | Move-Item -Destination Cert:/LocalMachine/CA

Según KB 2801679: problemas de comunicación SSL / TLS después de instalar KB 931125 , es posible que también tenga demasiados certificados de confianza.

[L] a tamaño máximo de la lista de autoridades de certificación de confianza que admite el paquete de seguridad de Schannel es de 16 kilobytes (KB). Tener una gran cantidad de Autoridades de Certicación de Raíz de Terceros superará el límite de 16k, y experimentará problemas de comunicación TLS / SSL.

La solución en esta situación es eliminar cualquier certificado de autoridad de certificación en el que no confíe, o dejar de enviar la lista de autoridades de certificación confiables al establecer la entrada de registro HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SecurityProviders/SCHANNEL/@SendTrustedIssuerList en 0 ( el valor predeterminado, si no está presente, es 1).