ブログ

ご注意:
この情報は過去に書かれたブログ記事のキャッシュになります。最新の情報ではありませんのでご注意ください。
また、公開当時のキャッシュされたテキストのみを読めるようにした内容になっております。 公開当時の画像やデザイン情報がありませんので、デザイン上読みにくい部分がありますことをご了承ください。 なお、最新のブログはGitHubにて公開しています。

日付0000/00/00

4DのWebサーバーにHTTPSでアクセスしたところ,SSLに関する警告がブラウザに表示されるようであれば,セキュリティ設定やSSLサーバー証明書を見直す必要があるかもしれません。この記事では,HTTPSサーバーの設定について説明しています。

関連記事: 主要ブラウザのセキュリティ強化でHTTPSエラー?!


4DのWebサーバーをHTTPSモードで公開するためには,下記のステップを踏み,SSLの設定をする必要があります。

秘密鍵を作成 (GENERATE ENCRYPTION KEYPAIR)
証明書要求の発行 (GENERATE CERTIFICATE REQUEST)
認証機関から証明書を取得 or 自己署名証明書を発行
証明書をデータベースフォルダーにインストール
WebサーバーをHTTPSモードで起動

ドキュメント: TLSプロトコルの使用

4DのWebサーバーの暗号化プロトコルは,OpenSSLライブラリに依存しています。ビルド195195以降,つまり14.4 HF2/15.1 HF1以降は,バージョン『1.0.1p』が使用されています。OpenSSLライブラリは,今後も定期的に更新される予定です。ライブラリは,Webサーバー以外にも,下記のコマンドやプラグインなどが参照しています。

ENCRYPT BLOB 
GENERATE CERTIFICATE REQUEST 
GENERATE ENCRYPTION KEYPAIR 
HTTP Get/Request 
4D Internet Commands 
4D ODBC Driver 
Webエリア(WebKit版)
アプリケーションサーバー
SQLサーバー

注記: PHPモジュールは別の古いOpenSSLとリンクしています。

v14以前のGENERATE CERTIFICATE REQUESTは『MD5』という古いアルゴリズムを使用していました。4Dで作成した証明書要求は,現在,ほとんどの認証機関に拒否されるはずです。もっとも,秘密鍵や証明書要求を4Dのコマンドで作成しなければならないわけではありません。たとえば,OpenSSLのコマンドラインツールで証明書要求および秘密鍵を作成することができます。

openssl req -new -newkey rsa:2048 -nodes -out server.csr -keyout key.pem -sha256 -subj "/C=JP/ST=State/L=City/O=Organization/OU=Department/CN=www.test.com"

4DのWebサーバーが使用しているOpenSSLライブラリが対応している以上,外部ツールを介して作成した証明書であっても,問題なく使用することができます。反面,v2004のWebサーバーは,OpenSSLライブラリが古すぎるので,最新のセキュリティ規準に対応することができません。バージョンアップグレードが必要です。

証明書要求ファイルで使用されているハッシュアルゴリズムは,OpenSSLのコマンドラインツールで確認することができます。

openssl req -in request.csr -noout -text

注記: v15では『SHA256』が使用されるようにコマンドが改定されたので,GENERATE CERTIFICATE REQUESTを使用することもできます。

以前のブログで触れたように,最新のv13/v14/v15は,SSLv3が完全に無効化されています。なお,v11.6では,SSLv2を無効化するための新しいセレクターがSET DATABASE PARAMETERに追加されていました。とはいえ,同コマンドでSSLv3まで無効化(POODLE対策)することはできません。v12のOpenSSLは,『0.9.8j』だったので,TLS 1.1に対応していません。最新のv13/v14/v15であれば,TLS 1.2に対応しています。また,Heartbleedは,OpenSSL『1.0.1』の初期(fよりも前)の問題なので,やはり,最新の4Dであれば,心配はありません。

まとめ
v15は,OpenSSLのバージョンも更新されており,最新のセキュリティ要求に対応しています。それ以前のバージョンでは,OpenSSLコマンドラインツールを活用したり,データベース設定を変更することによって,セキュリティを高めることができます。しかし,v2004~v12は,今日のセキュリティ要求に対応してません。