6

WCF で認証を使用する場合は、サーバーとクライアントの間でやり取りされるデータを暗号化するために WCF が使用する証明書をサーバーにインストールする必要があることを理解しています。

開発目的では、makecert.exe ユーティリティを使用できると思います。開発証明書を作成します。

この証明書を実稼働環境で使用すると、最悪の事態が発生しますか?

と...

この証明書を本番環境で使用できないのはなぜですか?

と ...

このシナリオで、証明書は実際に何をするのでしょうか?

[編集:別の質問を追加]

最後に...

Web サイトに HTTPS サポートを提供する証明書がインストールされているシナリオでは、同じ証明書を WCF サービスにも使用できますか?

私のアプリケーションに関する注意: NetTCP クライアントおよびサーバー サービスです。ユーザーは、クリア テキストで渡される Web サイトで使用するのと同じユーザー名とパスワードを使用してログインします。u/n + p/w をクリアテキストで WCF に渡すことができれば幸いですが、これはフレームワークで許可されておらず、証明書が必要です。しかし、予算の制約から証明書を購入したくありません。

(おそらくばかげた質問で申し訳ありませんが、私はこれを本当に理解していないので、これについての助けを歓迎します).

4

3 に答える 3

9

実稼働環境で開発者証明書を使用する場合、大きな問題は発生しません。結局のところ、証明書は証明書であり、提供される暗号化は他の商用証明書と同じです。

ただし、証明書は信頼できる認証局によって署名されていないため、クライアントにあなたがあなたであることを保証するものではありません。別の言い方をすれば、サービスが単純なWebページの場合、ブラウザーは証明書が無効であると表示します。

WebサーバーでSSLを提供するための証明書は、ドメインが信頼され検証されたドメインであり、認証局がそれを保証できることをクライアントに通知する証明書です。

したがって、によって作成された証明書は、makecert.exeあなたが一枚の紙にあなたの名前を書き、これがあなたの運転免許証であることを法務官に伝えるようなものです。

于 2010-03-24T09:39:55.553 に答える
4
  1. 証明書を信頼するには、いわゆる認証局によって発行される必要があります。自己署名証明書(makecertなどによって作成されたもの)は信頼されておらず、Webサイトを閲覧するすべての人に、「無効な証明書」(より具体的には「自己署名であるため、証明書は信頼されていません」)という警告が表示されます。したがって、最悪の場合、人々はあなたのサイトにアクセスしません。なぜなら、彼らはそれを信頼していないからです。

  2. 自己署名証明書を本番環境で使用できますが、上記の理由からお勧めできません。

  3. 証明書は、クライアントとサーバー間の安全な接続(HTTPS)を確立するために使用されます。その隣には、サーバーのIDを確認するためのものがあります。証明書が自己署名されている場合、サーバーのIDは保証されません。

  4. IISでは、Webサイトに証明書をインストールすると、そのWebサイトの下に展開されているすべてのWCFサービスが証明書を使用できるようになります。

つまり、開発には自己署名証明書を使用します( IISで証明書を簡単に生成するには、 SSL Diagnosticsというツールを調べてください)が、実際には本番用の証明書を使用してください。

于 2010-03-24T09:38:19.083 に答える
3

「この証明書を本番環境で使用すると、最悪の事態が発生します」セキュリティが失敗し、サービス全体が失敗します。

「この証明書を本番環境で使用できないのはなぜですか?」
生成された証明書で指定された認証局はクライアントに知られていないため、証明書を検証/使用できません。

「このシナリオでは、証明書は実際に何をするのでしょうか?」公開鍵は、クライアントが通信を暗号化するために使用します。これにより、秘密鍵の所有者 (この場合はサーバー) のみが再度復号化できることが保証されます (秘密鍵と公開鍵のペアは非対称暗号化です)。

お役に立てれば、

于 2010-03-24T09:30:55.403 に答える