4D Webサーバは、TLS (Transport Layer Security) プロトコル(SSL (Secured Socket Layer) プロトコルの後継版)を通じて、保護モードで通信する事ができます。デフォルトで、4Dでサポートされている最低限のバージョンはTLS 1.2となります。
TLSプロトコル(SSLプロトコルの後継版)は2つのアプリケーション、主にWebサーバとブラウザ間でのデータ交換を保護するために設計されています。このプロトコルは幅広く使用されていて、多くのWebブラウザとの互換性があります。
ネットワークレベルにおいては、TLSプロトコルはTCP/IPレイヤ (低レベル) とHTTP高レベルプロトコルとの間に挿入されます。TLSは主にHTTPで動作するように設計されました。
TLSを用いたネットワーク設定

注: TLSプロトコルは、標準な4D Serverクライアント/サーバーの接続を保護するためにも使用されます。 詳細は、4D Serverリファレンスマニュアルのクライアント/サーバー接続の暗号化とSQLリファレンスマニュアルの4D SQLサーバの設定を参照してください。
TLSプロトコルは、送信者と受信者を認証するために設計され、交換された情報の機密性と整合性を保証します。
- 認証: 送信者と受信者のIDを確認します。
- 機密性: 送信データをコード化します。そのため第三者はメッセージを解読することができません。
- 整合性: 受信データが偶発的にまたは故意に修正されることはありません。
TLSは公開鍵暗号化技術を用います。これは、暗号化と復号化の非対称鍵のペアである公開鍵と秘密鍵に基づいています。
秘 密鍵はデータを暗号化するために使用されます。送信者 (Webサイト) は、それを誰にも渡しません。公開鍵は情報を復号化するために使用され、証明書を通して受信者 (Webブラウザー) へ送信されます。インターネットでTLSを使用する際、証明書はVerisign®などの認証機関を通して発行されます。Webサイトは証明書を認証機関 から購入します。この証明書はサーバ認証を保証し、保護モードでのデータ交換を許可する公開鍵を格納しています。
注: 暗号化メソッドと公開鍵および秘密鍵に関する詳細は、ENCRYPT BLOBコマンドの記述を参照してください。
サーバーを保護モードで起動させるには、認証機関の電子証明書が必要です。この証明書にはサイトIDやそのサイトとの通信に使用する公開鍵など様々 な情報が格納されます。そのサイトに接続した際に、証明書がクライアント (Webブラウザー) へ送られます。証明書が識別され受け入れられると、保護モードで通信が開始さ れます。
注: ブラウザーはルート証明書がインストールされた認証機関によって発行された証明書のみを許可します。ルート証明書がインストールされていない場合、通常警告が表示されます。

認証機関は複数の条件によって選択されます。認証機関が一般によく知られていると、証明書は多くのブラウザによって許可されます。ただし支払料金は高くなるかもしれません。
デジタル証明書の取得
1. GENERATE ENCRYPTION KEYPAIRコマンドを使用して、秘密鍵を作成します。
警告: セキュリティ上の理由により、秘密鍵は常に機密でなければなりません。実際、秘密鍵は常にサーバーマシンと一緒に存在しているべきです。Key.pem ファイルは、データベースストラクチャーフォルダーに保存されていなければなりません。
2. 証明書のリクエストを発行するために GENERATE CERTIFICATE REQUEST コマンドを使用します。
3. その証明書リクエストを選択された認証機関へ送ります。
証明書リクエストを記入する際、認証機関への問い合わせが必要 となる場合があります。認証機関は送信されてきた情報が正確なものかを確認します。その証明書リクエストはbase64で暗号化されたPKCSフォーマット (PEMフォーマット) を用いてBLOBに作成さ れます。この原理を使用すると、テキストとしてキーをコピー&ペーストできます。キーの内容を修正せずに認証機関に提出します。例えばテキストドキュメントに証明書リクエストを含んでいるBLOBを保存します(BLOB TO DOCUMENT コマンドを使用)。そして、コンテンツを開き、それをコピーして、認証機関へ送信するメールまたはWebフォームにペーストします。
4. 証明書を取得したら、“cert.pem” という名前でテキストファイルを作成し、その証明書の内容をそのファイルへコピーします。
証明書は様々な方法で受け取る事ができます(通常はEメールまたはHTML形式で受け取ります)。4D は証明書に関しては全プラットフォームに関連したテキストフォーマットを受け付けます(OS X、Windows、Linux、等)。ただし証明書はPEMフォーマット、つまりbase64でPKCSエンコードされている必要があります。
注: CR改行コードは、それ単体ではサポートされていません。改行コードはCRLF またはLF を使用して下さい。
5. "cert.pem" ファイルを適切な場所に保存します。Web サーバーの場合は、データベースストラクチャーが格納されているフォルダーに保存します。
Webサーバーが保護モードで動作するようになります。証明書は6ヶ月から1年間の間で有効です。
4D Webサーバと一緒にTLSプロトコルを使用したい場合、以下の要素が所定の場所にインストールされていなければなりません。
- 4DSLI.DLL (Windows) または 4DSLI.bundle (Mac OS): TLS管理専用のDLL (Secured Layer Interface)
このファイルはデフォルトでインストールされ、以下の場所に配置されています。
- (Windows) 4Dまたは4D Serverアプリケーションの実行ファイルの隣
- (Mac) 4Dまたは4D Serverパッケージの Native Components サブフォルダ内
- key.pem (秘密暗号鍵を格納するドキュメント) とcert.pem ("証明書" を格納しているドキュメント):
- 4Dのローカル モードまたは4D Serverの場合
- バイナリーモードデータベースでは、これらのファイルはデータベースストラクチャファイルと同階層に保存されていなければなりません。
- プロジェクトモードデータベースでは、これらのファイルはプロジェクトフォルダと同階層に保存されていなければなりません。
- 4D のリモートモードでは、これらのファイルはリモートマシンのデータベースのローカルリソースフォルダに置かれなければなりません。このフォルダの場所に関する 情報は、Get 4D folderコマンドの説明内、4D Client Database Folderの段落を参照してください。これらのファイルは 手作業でリモートマシンにコピーしなければなりません。
注: デフォルトのkey.pem とcert.pem は4Dによって提供されています。より高レベルのセキュリティのためには、これらのファイルをご自身の証明書で置き換える事が強く推奨されます。
これらの要素をインストールすることにより、4D Webサーバへ接続するためにTLSの使用を可能にします。ただし、TLS接続が4D Webサーバによって受け入れられるようにするには、HTTPSを有効化することで"アクティブ"にしなければなりません。データベース設定のWebページの設定タブで、この引数へアクセスできます。

デフォルトで、TLS接続は許可されています。TLSの機能をWebサーバと一緒に使用したくない場合や、安全な接続を許可している他のWebサーバが同じマシンで起動している場合は、HTTPSオプションのチェックを外すことができます。
TLSデータ交換専用のHTTPSポートはデフォルトで443です。例えば、Webサーバのセキュリティを強化する場合など、HTTPSポートエリアでこのポート番号を修正することができます (このポートに関する詳細は Webサーバー設定 を参照してください) 。データベース設定のページで定義されたHTTPSポートは、標準モードのWebサーバ接続の際に使用されます。
Note: TLSモードでサーバが起動していても、していなくても、4D Web サーバ管理 (パスワード、タイムアウト、キャッシュサイズなど) 用に定義された別の設定が適用されます。
PFS は通信の中に新たなレイヤーのセキュリティを追加します。既に確立された交換鍵を使用する代わりに、PFS はDiffie-Hellman (DH) アルゴリズムを用いて通信間でのセッションキーを協力的に作成します。鍵が生成される共通の振る舞いにより、"共有の秘密"を作成し、これによって外部から鍵が破られるのを妨げる事ができます。
TLS が4D Web Server 上で有効化されているとき、PFS は自動的に有効されています。もしdhparams.pem ファイル(サーバーのDHの非公開鍵を含んでいるドキュメント)がまだ存在していない場合、4D は2048 の鍵サイズで自動的にそれを生成します。このファイルの生成は初回時のみ数分間かかる可能性があります。ファイルは以前の章(4DへのSSLインストールと起動)で説明があったように、key.pem および cert.pem ファイルと同じ場所に置かれます。
カスタムの暗号リストを使用していて、PFS を有効化したい場合、そのリストにDH あるいはECDH (Elliptic-curve Diffie–Hellman) アルゴリズムのエントリーが含まれている事を検証する必要があります。
注: より詳細な情報については、SET DATABASE PARAMETER コマンドのSSL cipher list セレクターを参照してください。
保護モードで実行されるWeb接続に対しては、ブラウザによって送られるURLは、"https" ("http" の代わりとして) で始まる必要があります。この場合、ブラウザに警告ダイアログが現れます。ユーザーがOKをクリックすると、Webサーバーはブラウザに証明書を送ります。

接続するために使用する暗号化アルゴリズムは、ブラウザとWebサーバによって決定されます。サーバはいくつかの対称的な暗号化アルゴリズムを提供します。一番効果のある共通なアルゴリズムが使用されます。
警告: 許可された暗号化のレベルは、使用する国の現行の法律によって異なります。
4D Web サーバーでTLS を使用するためには、"HTTPS を有効化する"チェックボックスをチェックする必要があります。これによってWebサーバーとの通信が保護モードで行われることを保証します。しかしながら、"HTTP を有効化する"チェックボックスもチェックされている場合には、ブラウザはHTTPS とHTTP とを切り替えることができるという点に注意してください(例えば、ユーザーはブラウザのURL エリア内で"https"を"http"と置き換えることが可能です)。
注:
非保護モードからのリクエストを禁止、あるいはリダイレクトすることができます:
- http リダイレクトを禁止するためには、"HTTP を有効化する"オプションのチェックを外します(あるいは対応するWEB SET OPTION のセレクターを使用します)。この場合、クライアントHTTP リクエストは4D Web サーバーからは無視され、エラーメッセージが表示されます。
- HTTP リクエストを自動的にHTTPS リクエストへと置き換えるためには、WEB SET OPTION コマンドとWeb HSTS enabled セレクターを使用して、HTTP ストリクト・トランスポート・セキュリティ(HSTS)を有効化します。これによってTLS の使用が強化され、全ての通信がHTTPS 経由で行われることを保証します。HSTS についての詳細な説明については、WEB SET OPTION コマンドの説明を参照してください。