WindowsサービスとWPFデスクトップアプリケーション(2つのサービス)でそれぞれホストされているWCFサービスを保護する正しい方法を探しています。
私は非常に多くの例とサンプルを試して読んだので、物事を行うさまざまな方法を読んだので、今はとても混乱していて、何をすべきかわかりません.
簡単に言えば、シナリオは次のとおりです...
クライアントアプリケーションが企業LANで接続できるようにするWindowsサービスがあります。
ここでのすべての通信は、企業のファイアウォールの背後にあります。一般向けのものはありません。
今-Windows認証が有効になっているbasichttpBindingを使用して、すべてを正常に機能させることができました。
問題は、http を使用せずに、すべてを安全に送信する必要があることです。
だから-証明書を生成するのは比較的簡単な作業だと思いました(商用証明書である必要はありません-MakeCertを使用した開発証明書だけで十分です)、その証明書をファイルからロードしてトラフィックを保護できます-ああ私はなんて間違っていたのでしょう。私が読んだことから、それは単純ではありません。
大まかに言えば、100 台のサーバーがそれぞれサービスを実行しており、このサービスには 500 台以上のデスクトップ クライアントがアクセスできます。各クライアントは、必要に応じて 100 台のサーバーのいずれかから接続できます。
また、サーバーは、必要に応じて相互に連絡することも許可されており、定期的に連絡しています。
600以上の証明書を生成して各マシンの証明書リポジトリにロードすることは、実際にはオプションではありません.1年か2年で更新をイメージできますか...
私が望んでいたのは、サーバー用の証明書ファイルとクライアント用の証明書ファイルを生成し、証明書ファイルをサーバーまたはクライアント アプリケーションの各インスタンスにそれぞれ配布できるようにすることでした。クライアントまたはサーバーが起動して WCF サービス ホストを開くと、そのパスで証明書を使用してトラフィックを暗号化します。これらは信頼できないソースからの証明書になるため、すべての失効チェックを無効にするつもりでしたが、前述したように、これは問題ありませんでした。
これまでのところ、これを行う方法を見つけることができませんでした.
また、http の代わりに net.tcp のパスを下ってみましたが、Visual Studio サービス参照ジェネレーターを取得してサービスを見つけることができませんでした。または、常にエラーで失敗しました。
上記で概説したシナリオを考えると、誰かがサーバーとクライアントの間で暗号化された通信を実現する正しい方法を教えてくれませんか (逆も同様です)。単一のサーバーまたはクライアント証明書を使用して ssl を有効にするために、basicHttpBindings にいくつかの小さな変更を加えることはできますか?
どんなアドバイスでも大歓迎です。または、私が説明したシナリオに適したガイドへのリンクを提供して、これを分類できるようにします。
どんな助けでも大歓迎
敬具
ロッド。