日付 | 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は,今日のセキュリティ要求に対応してません。