技術情報に関して更新します。(月1更新予定)

2018年4月2日月曜日

RPGLEでのSSL通信(1)

0 件のコメント :
以前に、RPGLEでのソケット通信について書いた覚えがあります。
IBM i のUNIX APIをRPGLEのサブプロシージャにカプセル化して、RPGLEのプログラムで利用できるようにしました。
今では、弊社のT-Socket-iとして提供されているソリューションです。


今回はその、T-Socket-iに少し機能を限定したSSL通信機能サブプロシージャを追加しました。
機能を限定としたのは、自分で納得のいかなかった機能を除外してしまったと言う意味です。
最低限、サーバ認証、改ざん防止。
暗号通信の部分は満足していると思っています。


実装するにあたって苦労したのは、SSLハンドル構造体(RPGLEで言えばデータ構造)をSSL APIに合致するようにどのように作るかでした。
幸い、インクルード・ファイルにC言語用のTypeDef構造体があったので、それに基づいて手さぐりで作成しました。
こればかりはネットで検索しても出てこなかったものですから…。
あ、自分の検索方法が悪かったのかもしれません。

SSL通信のテストにあたって、IBM i では、公開認証局、ローカル認証局に係わらず、サーバ証明書はDCM(デジタル証明書マネージャ)で管理されています。
もちろんテスト用の証明書を、公的認証局にお願いする(当然費用がかかる)訳にはいきませんので、IBM i 自身のローカル認証でサーバ証明書を発行しました。
面倒なところは、ローカル認証のサーバ証明書は通信相手にあらかじめルート証明書(サーバ証明書に署名したホストの証明書)をインポートしておく必要があることです。
公的認証局発行の証明書であれば、各マシンに、ルート認証局が自己署名したルート証明書はビルトインされていますので、提示したサーバ証明書は確認されるのですが、ローカル認証されたサーバ証明書は、ローカル認証局のルート証明書の公開鍵が無いと認証できないので、らかじめルート証明書を相手方にインポートしておく必要があります。(続く)

0 件のコメント :

コメントを投稿