SSL (Secured Socket Layer) プロトコルを通じて、4D Webサーバは保護モードで通信することができます。
SSLプロトコルは2つのアプリケーション、主にWebサーバとブラウザ間でのデータ交換を保護するために設計されています。このプロトコルは幅広く使用されていて、多くのWebブラウザとの互換があります。
ネットワークレベルにおいては、SSLプロトコルはTCP/IPレイヤ (低レベル) とHTTP高レベルプロトコルとの間に挿入されます。SSLは主にHTTPで動作するために指定されます。
SSLを用いたネットワーク設定
![](../../picture/38327/pict38327.ja.png)
注: SSLプロトコルは、標準な4D Serverクライアント/サーバーの接続を保護するためにも使用されます。 詳細は、4D Serverリファレンスマニュアルのクライアント/サーバ接続の暗号化とSQLリファレンスマニュアルの4D SQLサーバの設定を参照してください。
SSLプロトコルは、送信者と受信者を認証するために設計され、交換された情報の機密性と整合性を保証します。
- 認証: 送信者と受信者のIDを確認します。
- 機密性: 送信データをコード化します。そのため第三者はメッセージを解読することができません。
- 整合性: 受信データが偶発的にまたは故意に修正されることはありません。
SSLは公開鍵暗号化技術を用います。これは、暗号化と復号化の非対称鍵のペアである公開鍵と秘密鍵に基づいています。
秘密鍵はデータを暗号化するために使用されます。送信者 (Webサイト) は、それを誰にも渡しません。公開鍵は情報を復号化するために使用され、証明書を通して受信者 (Webブラウザー) へ送信されます。インターネットでSSLを使用する際、証明書はVerisign®などの認証機関を通して発行されます。Webサイトは証明書を認証機関から購入します。この証明書はサーバ認証を保証し、保護モードでのデータ交換を許可する公開鍵を格納しています。
注: 暗号化メソッドと公開鍵および秘密鍵に関する詳細は、ENCRYPT BLOBコマンドの記述を参照してください。
4D Webサーバーを保護モードで起動させるには、認証機関の電子証明書が必要です。この証明書にはサイトIDやそのサイトとの通信に使用する公開鍵など様々 な情報が格納されます。そのサイトに接続した際に、証明書がWebブラウザーへ送られます。証明書が識別され受け入れられると、保護モードで通信が開始さ れます。
注: ブラウザーはルート証明書がインストールされた認証機関によって発行された証明書のみを許可します。ルート証明書がインストールされていない場合、通常警告が表示されます。
![](../../picture/38328/pict38328.ja.png)
認証機関は複数の条件によって選択されます。認証機関が一般によく知られていると、証明書は多くのブラウザによって許可されます。ただし支払料金は高くなるかもしれません。
SSL証明書の取得
1. GENERATE ENCRYPTION KEYPAIRコマンドを使用して、秘密鍵を作成します。
警告: セキュリティ上の理由により、秘密鍵は常に機密でなければなりません。実際、秘密鍵は常にWebサーバーマシンと一緒に存在しているべきです。Key.pem ファイルは、データベースストラクチャーフォルダーに保存されていなければなりません。
2. 証明書のリクエストを発行するためにGENERATE CERTIFICATE REQUESTコマンドを使用します。
3. その証明書リクエストを選択された認証機関へ送ります。
証明書リクエストを記入する際、認証機関への問い合わせが必要 となる場合があります。認証機関は送信されてきた情報が正確なものかを確認します。その証明書リクエストはbase64で暗号化されたPKCSフォーマット(PEMフォーマット)を用いてBLOBに作成さ れます。この原理を使用すると、テキストとしてキーをコピー&ペーストできます。キーの内容を修正せずに認証機関に提出します。例えばテキストド キュメントに証明書リクエストを含んでいるBLOBを保存します (BLOB TO DOCUMENTコマンドを使用) 。そして、コンテンツを開き、それをコピーして、認証機関へ送信するメールまたはWebフォームにペーストします。
4. 証明書を取得したら、“cert.pem” という名前でテキストファイルを作成し、その証明書の内容をそのファイルへコピーします。
証明書はPKCSフォーマットで、改行コードはLF (Linux形式) でなければなりません。
5. "cert.pem" ファイルをデータベースストラクチャフォルダに保存します。
Webサーバーが保護モードで動作するようになります。証明書は認証機関が設定した期間有効です。
4D Webサーバと一緒にSSLプロトコルを使用したい場合、以下の要素が所定の場所にインストールされていなければなりません。
- 4DSLI.DLL (Windows) または 4DSLI.bundle (Mac OS): SSL管理専用のDLL (Secured Layer Interface)
このファイルはデフォルトでインストールされ、以下の場所に配置されています。
- Windowsでは、4Dまたは4D Serverアプリケーションの実行ファイルの隣。
- Mac OSでは、4Dまたは4D Serverパッケージの Native Components サブフォルダ内。
- key.pem (秘密暗号鍵を格納するドキュメント) とcert.pem ("証明書" を格納しているドキュメント):
- 4Dのローカル モードまたは4D Serverでは、このファイルはデータベースストラクチャファイルと同階層に保存されていなければなりません。
- 4D のリモートモードでは、このファイルはリモートマシンのデータベースのローカルリソースフォルダに置かれなければなりません。このフォルダの場所に関する 情報は、Get 4D folderコマンドの説明内、4D Client Database Folderの段落を参照してください。これらのファイルは 手作業でリモートマシンにコピーしなければならない点に留意してください。
注: また4DSLI.DLLは、暗号化コマンド ENCRYPT BLOB と DECRYPT BLOB を使用するときも必要です。
これらの要素をインストールすることにより、4D Webサーバへ接続するためにSSLの使用を可能にします。ただし、SSL接続が4D Webサーバによって受け入れられるようにするには、SSLを "アクティブ" にしなければなりません。データベース設定のWebページの設定タブで、この引数へアクセスできます。
![](../../picture/254380/pict254380.en.png)
デフォルトで、SSL接続が許可されています。SSLの機能をWebサーバと一緒に使用したくない場合や、安全な接続を許可している他のWebサーバが同じマシンで起動している場合は、このオプションのチェックを外します。
SSLデータ交換専用のTCPポートはデフォルトで443です。例えば、Webサーバのセキュリティを強化する場合など、HTTPSポート番号エリアでこのポート番号を修正することができます (このポートに関する詳細は Webサーバー設定 を参照してください) 。データベース設定のページで定義されたTCPポートは、標準モードのWebサーバ接続の際に使用されます。
Note: SSLモードでサーバが起動していても、していなくても、4D Web サーバ管理 (パスワード、タイムアウト、キャッシュサイズなど) 用に定義された別の設定が適用されます。
保護モードで実行されるWeb接続に対しては、ブラウザによって送られるURLは、"https" ("http" の代わりとして) で始まる必要があります。この場合、ブラウザに警告ダイアログが現れます。ユーザーがOKをクリックすると、Webサーバーはブラウザに証明書を送ります。
![](http://doc.tmp.4d.fr/picture/38330/pict38330.ja.png)
接続するために使用する暗号化アルゴリズムは、ブラウザとWebサーバによって決定されます。サーバはいくつかの相称的な暗号化アルゴリズム (RC2、RC4、DESなど)を提供します。一番効果のある共通なアルゴリズムが使用されます。
警告: 許可された暗号化のレベルは、使用する国の現行の法律によって異なります。4D Web サーバによって提供された暗号化のレベルは、使用する暗号化システムライブラリのバージョンに応じます。
4D WebサーバーとのSSLの使用は、特別なシステム環境の設定を必要としません。ただしSSL Webサーバーは非保護モードにおいても動作するということを覚えておいてください。例えば、ブラウザーが要求するのであれば、接続モードを他のモードへ切り 換えることが可能です (例としてブラウザーURLエリアで、ユーザーは "HTTPS" を "HTTP" と置き換えることができます) 。デベロッパーは、非保護モードで作成されたリクエストを禁じたり、リダイレクトすることができます。WEB Is secured connectionコマンドを使用すると、現在の接続モードを得ることが可能です。