スキップしてメイン コンテンツに移動

[VB.NET]オレオレ証明書でSSL通信するための短絡的な解決法

VB.NETソフトウェアでサーバーと通信することはよくある事だと思いますが、最近はHTTPを使って明けっ広げに刺しに行くよりHTTPSを使って暗号化してこそこそやった方が時代の流れに即した感じですよね(違うか)。
いちいちテスト環境でSSL証明書を用意するのも面倒だということで、セキュリティ的には全くよろしくない方法で迂回できるので紹介します。



HTTPS通信するのも、HTTPとやることはソースコード上何も変わらず意識する必要はないですが、それは接続するサーバーが信頼出来る証明書を持つ場合の事。
テスト環境など、サーバーの設定が終わっておらず、オレオレ証明書しか持ってないサーバーに繋ぐ場合などはどうやっても繋がらないので早々に設定を終わらせるかSSLの認証をすっ飛ばすしか方法はない(と思われる)。

具体的には、出力画面に下のような文言が出た場合。

System.Net.WebException: 基礎になる接続が閉じられました: SSL/TLS のセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした ---> System.Security.Authentication.AuthenticationException: 検証プロシージャによると、リモート証明書は無効です。


証明書の検証でつまづいているので、その部分をすっ飛ばしてみます。
イカソース
Imports System.Net
Imports System.Security.Cryptography.X509Certificates

    Private Function Callback(sender As Object, _
                                   certificate As X509Certificate, _
                                   chain As X509Chain, sslPolicyErrors As Security.SslPolicyErrors) As Boolean
        Return True
    End Function

このような、trueを返すだけの簡単な関数を用意して(引数だけはちゃんと合わせてあげる)、以下のようにイベントハンドラに登録する。
ServicePointManager.ServerCertificateValidationCallback = New Security.RemoteCertificateValidationCallback(AddressOf Callback)

以上です。

see also:
apacheで複数のSSL設定を行う


コメント

このブログの人気の投稿

[JS]Canvasでよく使う描画テクまとめ

HTMLで画像をいじくりたい時は、canvasを利用して編集するのは一般的ですが、WindowsストアアプリではHTML+CSS+JSでのアプリ開発ができる事もあって、簡単な画像編集であれば、C#やVBを使うより分かりやすいし資料が多く、C++でDirectXをガリガリ書くよりお手軽。入出力もファイルピッカーを使えば簡単に実装できます。今回は、Windowsのコードではなく、Canvasを利用する時のJavaScriptを使いどきに合わせてまとめていきます。

curl の基本的な使い方 -設定編-

今回のcurl TIPSは、curlをより日常的に使っていくためのHow toです。curlには、数多くのオプションが用意されていて、それらを組み合わせる事で様々な事が楽になるでしょう。サービス監視の自動化などにはまさにcurlの得意分野です。 今回は、curlを更に自分のものにしていくために大事なカスタマイズの部分を解説します。