GENERATE CERTIFICATE REQUEST

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 6.7


GENERATE CERTIFICATE REQUEST (privKey; certifRequest; codeArray; nameArray)

引数説明
privKeyBLOB秘密鍵BLOB
certifRequestBLOBCSRを受け取るBLOB
codeArray倍長整数配列情報コードリスト
nameArray文字列配列名前リスト

説明

GENERATE CERTIFICATE REQUEST コマンドは、Verisign(R)等の認証局で使用されているPKCSフォーマットで証明書リクエストを生成します。証明書はSSL暗号化プロトコルの重要な役割を持ちます。これはSSLモードで接続している各ブラウザに送信され、Webサイトの“IDカード” (このコマンドに指定した情報をもとに作成) とともに、ブラウザが受信情報の解読に使用できる公開鍵も納められています。さらにこの証明書には、整合性を保証する認証局により加えられた各種情報も納められます。

Note: 4D Webサーバで使用するSSLプロトコルに関する詳細はSSLプロトコルの使用の節を参照してください。

証明書リクエストには、GENERATE ENCRYPTION KEYPAIRコマンドで生成した一対の鍵が使用され、各種情報が納められます。認証局では、このリクエストと他の引数を組み合わせて証明書を作成します。

privKeyにはGENERATE ENCRYPTION KEYPAIRコマンドで生成した秘密鍵を納めたBLOBを渡します。

certifRequestには空のBLOBを渡します。コマンドが実行されると、この引数には証明書リクエストがPKCSフォーマットで納められます。このリクエストを認証局へ提出する目的で、例えばBLOB TO DOCUMENTコマンドを使用して、テキストファイルへ保存することができます。

警告: 秘密鍵はリクエストの作成に使用しますが、認証局へ送信してはいけません。

codeArray (倍長整数) およびnameArray (文字列) にはそれぞれ、認証局から要求されるコード番号と情報内容を納めます。

必要とされるコードおよび名称は、認証局や証明書の用途によって変わる場合があります。しかし、証明書の通常の用途であれば (SSL経由でのWebサーバ接続)、この配列には以下の項目を納める必要があります:

提供する情報 codeArray nameArray ()
CommonName13www.4D-Japan.com
CountryName (two letters)14JP
LocalityName15Setagaya-ku
StateOrProvinceName16Tokyo
OrganizationName174D Japan, Ltd.
OrganizationUnit18Web Administrator

コードと情報内容の入力順は問いませんが、これら2つの配列は同期していなくてはなりません。つまり、codeArrayの3番目の項目の値が15 (LocalityName) であれば、nameArrayの3番目の項目にはその情報を納める必要があります。ここの例題ではSetagaya-kuになります。

例題

“Certificate request”フォームには、標準の証明書リクエストで必要となる6つのフィールドが含まれています。Generateボタンは証明書リクエストを納めたドキュメントをディスク上に作成します。(GENERATE ENCRYPTION KEYPAIRコマンドで作成された) 秘密鍵を納めた“Privatekey.txt”もディスク上に存在している必要があります:

以下はGenerateボタンのメソッドです:

   ` bGenerate オブジェクトメソッド

   C_BLOB($vbprivateKey;$vbcertifRequest)
   C_LONGINT($tableNum)
   ARRAY LONGINT($tLCodes;6)
   ARRAY STRING(80;$tSInfos;6)

   $tableNum:=Table(Current form table)
   For ($i;1;6)
      $tSInfos{$i}:= Field($tableNum;$i)->
      $tLCodes{$i}:=$i+12
   End for
   If (Find in array($tSInfos;"") # -1)
      ALERT ("All fields should be filled.")
   Else
      ALERT ("Select your private key.")
      $vhDocRef:=Open document("") 
      If(OK=1)
         CLOSE DOCUMENT($vhDocRef)
         DOCUMENT TO BLOB(Document;$vbprivateKey)
         GENERATE CERTIFICATE REQUEST($vbPrivateKey;$vbcertifRequest;$tLCodes;$tSInfos)
         BLOB TO DOCUMENT ("Request.txt";$vbcertifRequest)
      Else
         ALERT ("Invalid private key.")
      End if
   End if

参照

GENERATE ENCRYPTION KEYPAIR, SSLプロトコルの使用.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次