2012-01-03 34 views
16

Estoy trabajando con una aplicación SSL y quiero controlar qué carpetas ignoran, requieren o aceptan certificaciones de clientes.¿Puede configurarse el certificado de cliente en el web.config

El objetivo final es que una subcarpeta de la aplicación web ignore la certificación del cliente. No quiero hacer esto a través de IIS porque tendrá que ser replicado en toda la granja de servidores web.

¿Alguna idea?

+0

si este proyecto en particular sitio no requiere IIS entonces mira esto servicios WCF http://www.codeproject.com/KB/WCF/wcfcertificates.aspx – MethodMan

+0

IIS 7 y usos anteriores web.config para almacenar esta , por lo que si los configura en el administrador de IIS verá que su app.config lo refleja. – blowdart

Respuesta

23

Puede usar una combinación de la sección access y locations en web.config (o web.configs en los subdirectorios apropiados) para configurar esto.

Por ejemplo, para requerir un certificado SSL en la interfaz de directorio, puede agregar el siguiente bloque a la sección de configuración de su web.config:

<location path="Interface"> 
    <system.webServer> 
     <security> 
     <access sslFlags="Ssl,SslRequireCert" /> 
     </security> 
    </system.webServer> 
    </location> 

Tenga en cuenta que si desea requerir SSL, tiene que agréguelo y el indicador de certificado correspondiente.

Los valores de la bandera de la documentación de TechNet son:

Ninguno. Esta configuración predeterminada deshabilita SSL para el sitio o la aplicación.

Ssl. El sitio o la aplicación requiere SSL.

SslNegotiateCert. El sitio o la aplicación acepta certificados de cliente para la autenticación.

SslRequireCert. El sitio o la aplicación requiere certificados de cliente para la autenticación. Ssl128. El sitio o la aplicación requiere un cifrado de certificado SSL de 128 bits.

Sin embargo

La sección access no puede ser anulado por defecto.

Para apoyar esto, debe modificar applicationHost.config en C: \ Windows \ System32 inetsrv \ config (directorio o apropiado para su instalación) \ y cambie la línea siguiente:

<section name="access" overrideModeDefault="Deny" /> 

a:

<section name="access" overrideModeDefault="Allow" /> 
+1

Tuve que agregar también SslNegotiateCert o hubo un error, por lo que terminó pareciéndose a esto:

+0

He utilizado su solución y funciona bien en mi envergadura local y de prueba , pero en el servidor de los clientes da error 500 ¿me pueden ayudar en eso? ¿Cuál podría ser la razón por la que Machien es Server 2012 R2? – Rehan

Cuestiones relacionadas