Pregunta Listas de certificados de confianza en IIS7


Estoy intentando habilitar la autenticación mutua para mi servicio web alojado en IIS7. Tengo la configuración y el trabajo de certificación del lado del servidor, pero no puedo averiguar cómo crear y configurar una Lista de confianza de certificados en IIS7 para que pueda solicitar y validar los certificados del lado del cliente.

Todos mis certificados del lado del cliente están firmados por mi propio certificado raíz, por lo que debo crear un CTL que contenga solo mi certificado raíz y luego tener certificados provistos por el cliente IIS contra el CTL.

¿Alguien puede arrojar algo de luz sobre cómo hacer esto? IIS6 tenía una interfaz de usuario para asignar una CTL, pero no puedo encontrar nada similar en IIS7.

Actualizar: Ahora he utilizado con éxito MakeCTL en modo asistente para crear una CTL con un nombre amistoso. Sin embargo, no tengo soporte para adsutil en mi caja de IIS7, así que a través de otras publicaciones en otros lugares estoy intentando usar el comando 'netsh http add sslcert' para asignar la CTL a mi sitio.

Antes de poder usar este comando, tuve que eliminar el certificado SSL existente que estaba asignado a mi sitio para la autenticación del servidor. Luego, en mi comando netsh, especifico la huella digital de ese mismo certificado SSL que eliminé, más un appid creado, más 'sslctlidentifier = MyCTL sslctlstorename = CA'. El comando resultante es:

netsh http add sslcert ipport = 10.10.10.10: 443 certhash = adfdffa988bb50736b8e58a54c1eac26ed005050 appid = {ff3pc3e181-b1422 -59fc669b09ff }asllplllplllplllplllplllpllll (yve el tipo de artículo).

(el IP addr está munged), pero recibo este error:

Error al agregar el certificado SSL, Error: 1312 No existe una sesión de inicio de sesión especificada. Puede que ya haya terminado.

Estoy seguro de que el error está relacionado con las opciones de CTL porque si las elimino funciona (aunque, por supuesto, no se asigna ningún CTL).

¿Puede alguien ayudarme a dar este último paso y hacer que esto funcione?

ACTUALIZACIÓN 01-07-2010: Nunca resolví esto con IIS 7.0 y desde entonces migramos nuestra aplicación a IIS 7.5 y le estoy dando otra oportunidad. Según la respuesta de Taras Chuhay, instalé la Compatibilidad con IIS6 en mi servidor de prueba y probé los pasos que documentó usando adsutil.vbs (que también se puede encontrar aquí). Inmediatamente me encontré con este error:

ErrNumber: -2147023584 Error al intentar establecer la propiedad: SslCtlIdentifier

al ejecutar este comando:

adsutil.vbs establece w3svc / 1 / SslCtlIdentifier MyFriendlyName

Luego pasé a probar el siguiente comando adsutil.vbs documentado y falló con el mismo error.

He verificado que el CTL que creé tiene un Nombre descriptivo de MyFriendlyName y que existe en la tienda 'Local Intermediate Certification Entities \ Certificate Trust List' de LocalComputer.

Así que una vez más estoy en un punto muerto. No sé qué más probar. ¿Alguna vez alguien ha conseguido que CTL funcione con IIS7 o 7.5? ¿Siempre? ¿Estoy venciendo a un caballo MUERTO? Google no aparece más que mis propias publicaciones y otras historias similares.

Actualización 2/23/10 - He confirmado con Microsoft que se trata de un error con IIS 7.5, pero funciona con IIS 7. Consulte este enlace para obtener más información: http://rethinker.net/Geek/Configuration/IIS7-CTLs.htm

Actualización 6/08/10 - Ahora puedo confirmar que KB981506 resuelve este problema. Hay un parche asociado con esta KB que debe aplicarse a las máquinas de Server 2008 R2 para habilitar esta funcionalidad. Una vez que está instalado todo funciona perfectamente para mí.


5
2018-06-16 15:35


origen


Enlace actualizado a MakeCTL: rethinker.net/Blog/Post/14/… - user423430


Respuestas:


Esto suena raro pero no puede usar la interfaz de usuario de IIS 7.0 para crear una Lista de confianza de certificados (CTL). Siga estos pasos para crear una CTL con IIS 7.0.

  1. Utilice MakeCTL.exe para crear el CTL. Para obtener más información sobre MakeCTL.exe, consulte la MakeCTL página en el sitio de MSDN.

    La herramienta MakeCTL.exe es parte de la .NET Framework SDK Versión 1.1. Una vez que instale el SDK, MakeCTL.exe aparecerá en la siguiente ubicación:

\ Archivos de programa \ Microsoft.NET \ SDK \ v1.1 \ Bin

  1. Después de crear la CTL, debe ejecutar AdsUtil.vbs para asignar el identificador de CTL al nombre utilizado en MakeCTL.exe.

    adsutil.vbs establece w3svc / 1 / SslCtlIdentifier

    ¿dónde está el nombre descriptivo de la CTL utilizada en MakeCTL.exe?

  2. Ejecute adsUtil.vbs para establecer el SslCtlStoreName.

adsutil.vbs establece w3svc / 1 / SslCtlStoreName CA

  1. Después de ejecutar AdsUtil.vbs, detenga los servicios web utilizando el siguiente comando:

net stop HTTP / y

  1. Reinicie el servicio WS3SVC usando el siguiente comando:

inicio neto W3SVC


1
2018-06-16 16:30



¿Está seguro de que .NET Framework SDK Versión 1.1 contiene MakeCTL.exe? Acabo de instalarlo y contiene certmgr y makecert, pero no MakeCTL. - Thomas Vander Stichele
No, tampoco lo encontré allí: (... @ThomasVanderStichele, ¿lo encontraste? - Kees C. Bakker


Tienes que instalar este hot fix de Microsoft

KB981506 - resuelve este problema.

Lo siento, no vi la referencia a KB en las respuestas hasta que publiqué este


1
2017-10-14 16:09



support.microsoft.com/kb/981506 (también parte del paquete de servicio 1) - user423430


¿Se aseguró de que la CTL se crea en el contexto de la máquina? Por defecto, SSL buscará en el contexto de la máquina y, si no puede encontrarlo allí, le dará un error (aunque no estoy seguro de si esta es la correcta).


0
2017-07-15 04:25