2012-01-03 12 views
16

Sto lavorando con un'applicazione SSL e sto cercando di controllare quali cartelle ignorare, richiedere o accettare certificazioni client.Le impostazioni del certificato del client possono essere configurate nel web.config

L'obiettivo finale è disporre di una sottocartella della certificazione del client ignora WebApp. Non voglio farlo tramite IIS perché dovrà essere replicato attraverso l'intera web farm.

Qualche idea?

+0

se questo particolare progetto di sito non richiede IIS quindi controllare questo fuori servizi WCF http://www.codeproject.com/KB/WCF/wcfcertificates.aspx – MethodMan

+0

IIS 7 e soprattutto usa web.config per memorizzare questo , quindi se li imposti in Gestione IIS vedrai che app.config lo riflette. – blowdart

risposta

23

È possibile utilizzare una combinazione della sezione access e locations in web.config (o web.configs nelle sottodirectory appropriate) per configurarlo.

Ad esempio, per richiedere un certificato SSL nella directory di interfaccia, è possibile aggiungere il seguente blocco alla sezione di configurazione del web.config:

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

Si noti che se si desidera richiedere SSL, è necessario aggiungilo e il flag di certificato appropriato.

I valori bandiera della documentazione di TechNet sono:

Nessuno. Questa impostazione predefinita disabilita SSL per il sito o l'applicazione.

Ssl. Il sito o l'applicazione richiede SSL.

SslNotronicoCert. Il sito o l'applicazione accetta i certificati client per l'autenticazione.

SslRequireCert. Il sito o l'applicazione richiede i certificati client per l'autenticazione. Ssl128. Il sito o l'applicazione richiede la crittografia dei certificati SSL a 128 bit.

TUTTAVIA

La sezione access non possono essere sovrascritte per impostazione predefinita.

Al fine di sostenere questo, è necessario modificare applicationHost.config in C: \ Windows \ System32 \ inetsrv \ config (o directory appropriata per la vostra installazione) e modificare la riga seguente:

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

a:

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

Ho dovuto aggiungere anche SslNotCotiateCert o si è verificato un errore, quindi è stato visualizzato in questo modo:

+0

Ho usato la soluzione e funziona bene sul mio locale e sull'ambiente di prova , ma sul server client dà 500 errori puoi aiutarmi su quello che potrebbe essere la ragione machien è Server 2012 R2 – Rehan

Problemi correlati