ディフォルトのオンライン認証にしてしまうと私が作った認証局は信頼されていないため通信ができなくなります。これからテスト用に(お金を払わずに)自分で認証局を作成するので、忘れずにオンライン認証を外しておきましょう。上記の設定はWCF構成の編集より[詳細設定]→[サービス動作]で作成可能です。作ったサービス動作は次のように、サービス自体にひも付けてください。(1行目)]]>ひとまず設定は完了したので、サーバーアプリを起動してみます。すると例外を投げて終了しました。証明書が見つかりませんでした。」それもそのはず、作ってませんし登録もしていませんからね。証明書を作りましょう。ルート証明書を作成します。いうツールを使うのですが、次の場所に存在します。10.0\VC使い方は次のページから学べます。(証明書作成ツール)さて、作成方法も次のページから手に入れる事ができます。開発中に使用する一時的な証明書を作成する上記のドキュメントリンクを参考に実際にルート証明書を作ってみます。パスワードの入力が求められました。パスワードを設定して、秘密鍵を守ります。ルート証明書の作成に成功したら、クライアントとサーバーのPCにて「信頼されたルート証明機関」に登録します。登録方法は次のページに示されています。ファイルをインポートすることで登録完了です。続いて、サーバー側に持たせる証明書を作ります。次のコマンドを「管理者権限」で実行します。)パスワードが求められましたら、先程ルート証明書の作成で設定したパスワードを入力します。開き、[証明書(ローカルコンピューター)]→[個人]→[証明書]を確認してください。証明書が秘密キーを持っている状態(アイコンに鍵マーク付き)で登録されていれば成功です。残るはクライアントの証明書ですね。今度はクライアント側のPCで作業します。サーバー側のPCで行ったとおりの手順で「信頼されたルート証明機関」にルート証明書が登録されているはずですので次のコマンドを「管理者権限」で実行するだけです。パスワードが求められましたら、ルート証明書の作成で設定したパスワードを入力します。開き、[証明書(ローカルコンピューター)]→[個人]→[証明書]を確認してください。証明書が秘密キーを持っている状態(アイコンに鍵マーク付き)で登録されていれば成功です。はい、ではお互いのPCで公開鍵を交換します。開き、[証明書(ローカルコンピューター)]→[個人]→[証明書]に登録しても構いません。はい、これでお互いに秘密鍵と公開鍵を持つ形で証明書を登録できました。WCFのサーバーアプリの設定のとおり、サブジェクト名で探せば証明書が見つかるはずです。先程証明書がなくて起動に失敗したサーバーアプリを立ち上げます。よし!まずはサーバー側の準備が完了です。セキュリティを有効にしたクライアントの設定を作ってクライアントを起動してみます。]]>セキュリティ設定で大切な部分をハイライトしました。クライアントとサービスにそれぞれ正しい証明書を指定するのはもちろん13行目、ここでもオンライン認証を避けて、無理やり自分の証明機関を信頼させます。情報を相手に送らない仕組みです。セキュリティを有効にしたまま暗号化通信しながらストリーミングを行えるはずです。やりました!動きました。6分ほどで完了しました。目的達成です!メッセージセキュリティもっと強固なセキュリティを使ってみたいと思います。中継局にも秘密にしたまま、相手と自分のPCだけで秘密の通信を行ってみます。]]>ハイライトした所だけ変えます。残念ながらこのままではサーバーアプリは例外を吐いて死にます。ストリームタイプでバインドしていますが、こんなバインドではダメだと言ってきました。