[PHP-users 23749] PHP の SSL 関数で証明書作成について

s38217kt @ std.kurume-nct.ac.jp s38217kt @ std.kurume-nct.ac.jp
2004年 11月 29日 (月) 18:19:35 JST


tsukamotoといいます。

現在,PHPとOpenSSLでクライアント証明書を発行するプログラムを作成していますが,
次のようなエラーが出ます。

Warning: openssl_csr_new(): dn: add_entry_by_NID 48 -> (failed) in /home/cert.php on line 15

Warning: openssl_csr_sign(): cannot get CSR from parameter 1 in /home/cert.php on line 16

CSRファイルの発行に失敗しているので,署名ができないということはわかりますが,その原因がわかりません。
add_entry_by_NID 48 をキーワードにググってみましたが,それらしい答えは見つかりませんでした。
ご教授お願いします。

ソースは次の通りです。

--------------------------
1: <?php
2: $CA_CERT="cacert.pem";
3: $CA_KEY="cakey.pem";
4: $req_key=openssl_pkey_new();
5: if(openssl_pkey_export($req_key,$out_key)){
6:  $dn=array(
7:	    "countryName"           => "JP",
8:	    "stateOrProvinceName"   => "tokyo",
9:	    "localityName"          => "shibuya",
10:	    "organizationName"      => "company",
11:	    "organizationalUnitName"=> "manager",
12:	    "commonName"            => "hoge",
13:	    "emailAddress"          => "hoge @ hoge.com"
14:	    );
15:  $req_csr=openssl_csr_new($dn,$req_key);
16:  $req_cert=openssl_csr_sign($req_csr,"file://$CA_CERT","file://$CA_KEY",365);
17:  if(openssl_x509_export($req_cert,$out_cert)){
18:    echo"$out_key\n";
19:    echo"$out_cert\n";
20:  }
21:  else echo"証明書発行に失敗しました。\n";
22: }
23: else echo"鍵生成に失敗しました。\n";
24: ?>
----------------------------

環境は以下の通りです。
Red Hat Linux 8
httpd 2.0.52
PHP 4.3.9
openssl 0.9.7d



PHP-users メーリングリストの案内