2012-01-03 27 views
16

私はSSLアプリケーションを使用しており、クライアント認証を無視、要求、または受け入れるフォルダを制御したいと考えています。クライアントの証明書設定をweb.configで設定できるかどうか

最後の目標は、webAppのサブフォルダにクライアント証明書を無視させることです。 Webファーム全体に複製する必要があるため、IIS経由でこの操作を実行する必要はありません。

アイデア?

+0

その後、WCFサービスがhttp://www.codeproject.com/KB/WCF/wcfcertificates.aspx – MethodMan

+0

7のIIS以上、これを保存するためにweb.configファイルを使用してこれをチェックしたがって、IISマネージャーで設定した場合、app.configに反映されます。 – blowdart

答えて

23

accessセクションとlocationsの組み合わせをweb.config(または適切なサブディレクトリ内のweb.configs)で使用して設定することができます。例えば

、ディレクトリインターフェイスでSSL証明書を必要とする、あなたのweb.configファイルの構成セクションに次のブロックを追加することができますが:SSLを要求する場合は、あなたがしなければならないこと

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

注意それと適切な証明書フラグを追加してください。 TechNetドキュメントから

フラグの値はありません:

なし。このデフォルト設定では、サイトまたはアプリケーションのSSLが無効になります。

SSL。サイトまたはアプリケーションにSSLが必要です。

SslNegotiateCert。サイトまたはアプリケーションは、認証用のクライアント証明書を受け入れます。

SslRequireCert。サイトまたはアプリケーションには、認証用のクライアント証明書が必要です。 Ssl128。サイトまたはアプリケーションには、128ビットSSL証明書の暗号化が必要です。

もつとも

accessセクションでは、デフォルトでは無効にすることはできません。 (お使いのインストール、または適切なディレクトリ)\ WINDOWS \ System32に\ inetsrvに\ configとし、次の行を変更します:

これをサポートするために、あなたはCであるapplicationHost.configを変更する必要があります

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

ました:このサイト特定のプロジェクトは、IISを必要としない場合

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

また、SslNegotiateCertを追加する必要があったか、エラーがあったので、次のようになりました。

+0

私はあなたのソリューションを使用しています。 、しかし、クライアントのサーバーでは、それは500のエラーを与えることができますそれは何が原因である可能性がありますmachien Server 2012 R2 – Rehan

関連する問題