2

NetTCP:Transport:WindowsClientCredentialTypeを使用して実行されているセルフホストのWCFサービスがあります

        // Set Binding Security.
        netTcpBinding.Security.Mode = SecurityMode.Transport;
        netTcpBinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;
        netTcpBinding.Security.Transport.ProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;

これらのサービスを独自のドメイン外のドメインに公開する必要がありますが、自己ホスティングを継続し、IISを使用しないようにします。したがって、私は私たちをCertificateのClientCredentialTypeに切り替えようとしています。

        // Set Binding Security.
        netTcpBinding.Security.Mode = SecurityMode.Transport;
        netTcpBinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Certificate;
        netTcpBinding.Security.Transport.ProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;

私は以前(ずっと前に)開発環境をセットアップしました。そこでは、MakeCertを使用して、WCFを使用した開発目的で「ダミー」証明書を生成しました。しかし、それ以来、Verisignから証明書を購入しました。私は今何が起こる必要があるかについて少し曖昧です。この証明書を使用してクライアントへのサービスを検証していることがわかりますが、.NETクライアントを証明書で検証するにはどうすればよいですか?同じ証明書を使用しますか?クライアントのインストール中にこの証明書をインストールする必要がありますか?ここで車軸を少し包み込み、誰かが手伝ってくれるかどうかを説明することができます。

4

1 に答える 1

4

いいえ、クライアントに秘密鍵を使用して証明書をインストールしません。あなたの秘密鍵を誰にも渡してはいけません - それが危険にさらされると、あなたのセキュリティは失われます! 問題は、クライアント証明書にも秘密鍵が必要ですが、その秘密鍵はその単一のクライアントのみが所有する必要があることです。つまり、クライアントごとに別の証明書が必要です。

通常はどのように実装されますか?クライアントに証明書を発行するローカル認証局による。サービスはその機関を信頼するため、その機関によって発行された証明書を保持するすべてのクライアントが信頼されます。これがこれを制御する唯一のシナリオです。それ以外の場合は、クライアントを認証する別のメカニズムを見つける必要があります。

于 2011-09-19T20:48:57.453 に答える