C#でTCP、SSL通信を行いたいです。
C#でTCP、SSL通信が出来るサーバとクライアントを作成したいと思っております。
ご教授をお願いできませんでしょうか。
環境開発はWindows7 32bit、Visual Studio Community2015、NETFramework4.5.2です。
PC一台にサーバとクライアントを立ち上げて行いたいと思っております。
プログラムの流れは以下のようにと考えております。
1.サーバはTcpListenerで接続待ちにしておきます。
2.クライアントは接続します。
3.サーバからクライアントへサーバ証明書を送ります。
4.クライアントはサーバ証明書からそのサーバが正しいか判定します。
5.SSL通信をはじめ、データのやり取りを行います。
参照で申し訳ないのですが以下のサイトで正にやりたいことではないかと考えております。
http://www.dib0.nl/code/343-using-ssl-over-tcp-as-client-and-server-with-c
ただ、証明書の読み込みの部分で怒られてしまいます。証明書に関連付けられた秘密鍵云々・・・。
ここを上手くいく設定をご教授頂きたいです。
怒られた時は、適当にインターネットエクスプローラー>インターネットオプション>証明書で適当な証明書をエクスポートしまして、そのエクスポートしたファイルを指定しております。しかし、その証明書には鍵のエクスポート等の選択が「いいえ」しか選べません。ここも何か関係しているのではないかと考えております。
また、プログラムのことで質問なのですが、クライアント側の8行目から13行目の動作をご教授願いたいです。SslStreamオブジェクトから(client.GetStream(), false,
new RemoteCertificateValidationCallback(ValidateServerCertificate), null)を引数にしsslStreamを生成して(合ってますでしょうか?)usingとなぜ{・・・}があるのか、書き方等含めわかりません。こちらもご教授頂きたいです。また、22行を通る時にValidateServerCertificateメソッドを行うという認識で合っていますでしょうか。
お手数ですがよろしくお願いいたします。