TLSプロトコル (HTTPS)
すべての 4Dサーバーは、TLS (Transport Layer Security) プロトコルを通じて、保護モードで通信する事ができます:
- Webサーバー
- アプリケーションサーバー (クライアントサーバー・デスクトップアプリケーション)
- SQLサーバー
概要
TLSプロトコル (SSLプロトコルの後継版) は 2つのアプリケーション、主に Webサーバーとブラウザー間でのデータ交換を保護するために設計されています。このプロトコルは幅広く使用されていて、多くの Webブラウザーとの互換性があります。
ネットワークレベルにおいては、TLSプロトコルは TCP/IPレイヤー (低レベル) とHTTP高レベルプロトコルとの間に挿入されます。 TLS は主に HTTP で動作するように設計されました。
TLS を用いたネットワーク設定:
TLSプロトコルは、送信者と受信者を認証するために設計され、交換された情報の機密性と整合性を保証します:
- 認証: 送信者と受信者の ID を確認します。
- 機密性: 送信データを暗号化します。そのため第三者はメッセージを解読することができません。
- 整合性: 受信データが偶発的にまたは故意に修正されることはありません。
TLS は公開鍵暗号化技術を用います。 これは、暗号化と復号化の非対称鍵のペアである公開鍵と秘密鍵に基づいています。秘密鍵はデータを暗号化するために使用されます。送信者 (Webサイト) は、それを誰にも渡しません。公開鍵は情報を復号化するために使用され、証明書を通して受信者 (Webブラウザー) へ送信されます。インターネットで TLS を使用する際、証明書は Verisign® などの認証機関を通して発行されます。 Webサイトは証明書を認証機関 から購入します。この証明書はサーバー認証を保証し、保護モードでのデータ交換を許可する公開鍵を格納しています。
For more information on the encryption method and the public and private key issues, refer to the
ENCRYPT BLOBcommand description.
最低バージョン
デフォルトで、4D でサポートされている最低限のバージョンは TLS 1.2 となります。 You can modify this value by using the Min TLS version selector with the SET DATABASE PARAMETER command.
You can control the level of security of your web server by defining the minimum TLS version accepted for connections.
証明書の取得方法
サーバーを保護モードで起動させるには、認証機関の電子証明書が必要です。この証明書には、サイトID や、サーバーとの通信に使用する公開鍵など、様々な情報が格納されます。そのサーバーに接続した際に、証明書がクライアント (例: Webブラウザー) へ送られます。証明書が識別され受け入れられると、保護モードで通信が開始されます。
ブラウザーは、ルート証明書がインストールされた認証機関によって発行された証明書のみを許可します。

認証機関は複数の条件によって選択されます。認証機関が一般によく知られていると、証明書は多くのブラウザーによって許可されます。ただし、費用は高くなるかもしれません。
デジタル証明書の取得:
GENERATE ENCRYPTION KEYPAIRコマンドを使用して、秘密鍵を作成します。
セキュリティ上の理由により、秘密鍵は常に機密でなければなりません。実際、秘密鍵は常にサーバーマシンと一緒に存在しているべきです。 Webサーバーの場合、Key.pem ファイルは Projectフォルダーに保存されていなければなりません。
-
証明書のリクエストを発行するために
GENERATE CERTIFICATE REQUESTコマンドを使用します。 -
その証明書リクエストを選択された認証機関へ送ります。証明書リクエストを記入する際、認証機関への問い合わせが必要となる場合があります。認証機関は送信されてきた情報が正確なものかを確認します。その証明書リクエストは base64 で暗号化された PKCSフォーマット (PEMフォーマット) を用いて BLOB に作成さ れます。この原理を使用すると、テキストとしてキーをコピー&ペーストできます。 キーの内容を修正せずに認証機関に提出します。たとえば、テキストドキュメントに証明書リクエストを含んでいる BLOB を保存します (
BLOB TO DOCUMENTコマンドを使用)。そして、コンテンツを開き、それをコピーして、認証機関へ送信するメールまたは Webフォームにペーストします。 -
証明書を取得したら、"cert.pem" という名前でテキストファイルを作成し、その証明書の内容をそのファイルへコピーします。証明書は様々な方法で受け取ることができます (通常は Eメールまたは HTML形式で受け取ります)。証明書を取得したら、"cert.pem" という名前でテキストファイルを作成し、その証明書の内容をそのファイルへコピーします。 証明書は様々な方法で受け取ることができます (通常は Eメールまたは HTML形式で受け取ります)。 4D accepts all platform-related text formats for certificates (macOS, PC, Linux, etc.). However, the certificate must be in PEM format, i.e., PKCS encoded in base64.
CR改行コードは、それ単体ではサポートされていません。 改行コードは CRLF または LF を使用してください。
- Place the “cert.pem” file in the appropriate location.
4Dサーバーが保護モードで動作するようになります。証明書は 3ヶ月から1年間の間で有効です。
インストールとアクティベーション
Installing key.pem and cert.pem files
To be able to use the TLS protocol with the server, you must install the key.pem (document containing the private encryption key) and cert.pem (document containing the certificate) at the appropriate location(s). TLS を使用するサーバーによって、インストールする場所が異なります。
Default key.pem and cert.pem files are provided with 4D. より高レベルのセキュリティのためには、これらのファイルをご自身の証明書で置き換えることが強く推奨されます。
Webサーバーの場合
To be used by the 4D web server, the key.pem and cert.pem files must be placed:
- with 4D in local mode or 4D Server, next to the project folder
- 4D のリモートモードでは、これらのファイルはリモートマシンの 4D Client Database フォルダーに置かれなければなりません。 このフォルダーの場所に関する情報は、
Get 4D Folderコマンドの説明を参照ください。
これらのファイルはリモートマシンに手動でコピーする必要があります。
アプリケーションサーバー (クライアントサーバー・デスクトップアプリケーション) の場合
To be used by the 4D application server, the key.pem and cert.pem files must be placed in the Resources folder of the 4D Server application.
SQLサーバーの場合
To be used by the 4D SQL server, the key.pem and cert.pem files must be placed next to the project folder.
TLSを有効にする
The installation of key.pem and cert.pem files makes it possible to use TLS with the 4D server. ただし、サーバーによって受け入れられるようにするには、TLS接続を有効化しなければなりません:
- With the 4D web server, you must enable HTTPS. You can set the HSTS option to redirect browsers trying to connect in http mode.
- With the application server, you must select the Encrypt Client-Server Communications option in the "Client-server/Network options" page of the Settings dialog box.
- With the SQL server, you must select the Enable TLS option in the "SQL" page of the Settings dialog box.
4D Webサーバーは、セキュアな HTTPS接続のみを許可するとブラウザーに対して宣言するための HSTSオプション をサポートしています。
Perfect Forward Secrecy (PFS)
PFS は通信の中に新たなレイヤーのセキュリティを追加します。事前準備された交換鍵を使用する代わりに、PFS は Diffie-Hellman (DH) アルゴリズムを用いて通信相手同士で協同的にセッションキーを作成します。このように協同で鍵を作成することで "共有の秘密" が作成され、外部への漏洩を防ぐことができます。
サーバー上で TLS が有効化されているとき、PFS は自動的に有効されます。 dhparams.pem ファイル (サーバーの DH非公開鍵を含むドキュメント) がまだ存在していない場合、4D は 2048 の鍵サイズで自動的にそれを生成します。このファイルの生成には数分間かかる可能性があります。 The file is placed with the key.pem and cert.pem files.
カスタムの暗号リスト を使用していて、PFS を有効化したい場合、DH あるいは ECDH (Elliptic-curve Diffie–Hellman) アルゴリズムのエントリーがそのリストに含まれている必要があります。