そのまんま!
openssl_csr_sign
    (PHP 4 >= 4.2.0, PHP 5)
openssl_csr_sign -- 他の CERT(あるいは自分自身)で証明書をサインする
説明
resource 
openssl_csr_sign ( mixed csr, mixed cacert, mixed priv_key, int days [, array configargs [, int serial]] )
     openssl_csr_sign() は、事前に
     openssl_csr_new() で作成した csr
     を用いて x509 証明書リソースを作成します。
     file://path/to/csr 、あるいは
     openssl_csr_export() で生成した文字列で指定した場合は
     PEM エンコードされた CSR も使用可能です。
     作成された証明書は cacert で署名されます。
     cacert が NULL の場合は、自己署名の
     証明書となります。priv_key は
     cacert に対応する秘密鍵です。
     days は、作成された証明書の有効期限を日数で
     指定します。configargs で証明書の詳細設定が
     可能です。configargs についての詳細な情報は
     openssl_csr_new() を参照ください。
     PHP 4.3.3 以降、発行された証明書のシリアル番号を
     serial で指定可能です。以前のバージョンでは
     この値は常に 0 でした。
    
     成功した場合に x509 証明書リソース、失敗した場合に FALSE を返します。
    
注意: 
  この関数を正しく機能させるには、有効な openssl.cnf
  がインストールされている必要があります。詳細な情報については
  インストールセクション
  の下にある注記を参照ください。
 
     
| 例 1. openssl_csr_sign() の例 -
       CSR に署名する(あなた自身の CA を作成する) | 
<?php// このスクリプトでは、前のページのテキストエリアから受け取った
 // CSR を利用すると仮定します。
 $csrdata = $_POST["CSR"];
 
 // これから、私たち自身 "certificate authority" 証明書を使用して
 // 署名を行います。どんな証明書でも署名は可能ですが、署名された
 // 証明書がソフトウェアやユーザに信頼されない限り、その手続きは
 // 無意味です。
 
 // CA cert および秘密鍵が必要です。
 $cacert = "file://path/to/ca.crt";
 $privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");
 
 $userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);
 
 // 作成された証明書を表示します。これをコピーして、
 // ローカル設定(たとえば SSL サーバへの接続設定ファイルなど)
 // に貼り付けます。
 openssl_x509_export($usercert, $certout);
 echo $certout;
 
 // 発生したエラーをすべて表示します。
 while (($e = openssl_error_string()) !== false) {
 echo $e . "\n";
 }
 ?>
 | 
 |