SSLを使用したWCFサービス

私はSSL証明書がアプリケーションのセキュリティ目的のために使用されることを知っているので、データ転送は暗号化された形式でなければなりません。私の知る限りでは、アプリケーションのホストサーバーにSSL証明書をインストールする必要があります。

最近私はWCFサービスで働いています。クライアントは、SSL証明書を使用してWCFサービスを作成することを希望します。

私が知りたいのは、SSL証明書のコードレベルで行う必要があることです。 IISでサービスをホストするつもりです。

SSL証明書を使用してWCFサービスを設定する手順は何ですか?

私はほとんど知識が常に危険であることを知っている:(

詳しく教えてください。

前もって感謝します。

0
SSLを使用したクライアント認証によるセキュアなチャネル
追加された 著者 Amit Soni,
ああ、クライアントは10,000まで変化することができます...
追加された 著者 Amit Soni,
Al-right thanks rajesh ..カスタム証明書バリデータに関する簡単な説明を私に少しお寄せください。実際にはこれらの用語に新しい。 Mも同じことをインターネットで見ている。
追加された 著者 Amit Soni,
SSLを使用してチャネルを保護するか、クライアント認証を実行するだけですか?
追加された 著者 Rajesh,
SSLを使用してクライアント認証を行う場合は、単一のクライアント用であるか、またはこのサービスにアクセスする異なるクライアントの可能性がありますか?
追加された 著者 Rajesh,
その場合、各クライアントを証明書で区別したい場合は、カスタム証明書のバリデーターが必要になることがあります。カスタム証明書のバリデーターを実装するのは簡単です。
追加された 著者 Rajesh,

1 答え

以下の2つの方法でSSLを使用するようにサービスを設定する手順は次のとおりです。

  1. httpsバインディングがマップされたウェブサイトを作成します。
  2. httpsバインディングがウェブサイトにマップされると、トランスポートチャネルを保護するために使用するサーバーSSL証明書が要求されます。
  3. サービスを展開する仮想ディレクトリを作成します。
  4. WCFサービスを構築するには、サービスがhttpsを使用し、クライアントが証明書を使用して認証されるように指定する必要があります。
  5. 仮想ディレクトリのSSL設定で、クライアントが証明書を渡す可能性があることを示す可能性があることを示す[Accept]オプションを設定します。それを要求するように設定すると、クライアントは証明書を渡す必要があります

注:証明書を使用する場合は、どの証明書をどの証明書ストアにインストールする必要があるかを確認する必要があります。自己署名証明書でいくつかの例外があるかもしれませんが、以下のコードを使用してクライアント上でバイパスすることができます:

ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) => true;

カスタム証明書バリデータを実装して使用する方法に関するいくつかのコード:

public class CustomX509CertificateValidator : System.IdentityModel.Selectors.X509CertificateValidator
    {
       //This Validation function accepts any X.509 Certificate that is self-issued. As anyone can construct such
       //a certificate this custom validator is less secure than the default behavior provided by the
       //ChainTrust X509CertificateValidationMode. The security implications of this should be carefully 
       //considered before using this validation logic in production code. 
        public override void Validate(X509Certificate2 certificate)
        {
           //Check that we have been passed a certificate
            if (certificate == null)
                throw new ArgumentNullException("certificate");

           //Only accept self-issued certificates
            if (certificate.Subject != certificate.Issuer)
                throw new SecurityTokenException("Certificate is not self-issued");
        }
    }

カスタム証明書検証ツールを使用するためのWCFサービス設定ファイルが以下に示されています:


      
        
          
          
            <!-- 
            The serviceCredentials behavior allows one to specify authentication constraints on client certificates.
            -->
            
              <!-- 
              Setting the certificateValidationMode to Custom means that if the custom X509CertificateValidator
              does NOT throw an exception, then the provided certificate will be trusted without performing any
              validation beyond that performed by the custom validator. The security implications of this 
              setting should be carefully considered before using Custom in production code. 
              -->
              
            
            <!-- 
            The serviceCredentials behavior allows one to define a service certificate.
            A service certificate is used by a client to authenticate the service and provide message protection.
            This configuration references the "localhost" certificate installed during the setup instructions.
            -->
            
          
        
      
    
0
追加された
RAJESTの復讐を感謝します。私は私のサービスのために機能のこれらのタイプを探していると思う。感謝
追加された 著者 Amit Soni,