如何在PHP 5.x中將X.509證書的用途設置爲X509_PURPOSE_ANY?如何在PHP中定義X509證書的特定用途
下面的代碼輸出此警告:
警告:openssl_csr_new()[function.openssl-CSR-new.php]:DN:X509_PURPOSE是不可識別的名稱在/ home/WWW /索引。 PHP的第45行上
PHP腳本:
$Configs = array(
'config' => 'test.cnf',
'digest_alg' => 'sha1',
'x509_extensions' => 'v3_ca',
'req_extensions' => 'v3_req',
'private_key_bits' => 2048,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
'encrypt_key' => true,
'encrypt_key_cipher' => OPENSSL_CIPHER_3DES);
$ExtraAttribs = array('X509_PURPOSE' => 'X509_PURPOSE_ANY');
//create cert
$dn = array('commonName' => 'Chief');
$privkey = openssl_pkey_new($Configs);
$csr = openssl_csr_new($dn, $privkey, $Configs, $ExtraAttribs);
最後一行是45行
您是否嘗試從'$ ExtraAttribs'數組中刪除單引號'''? – 2012-03-09 07:04:20
不起作用。錯誤消息:「使用未定義的常量X509_PURPOSE - 假定爲'X509_PURPOSE'」 – Mike 2012-03-09 13:58:39
我找不到任何指示X509證書具有「目的」。我只能找到「基本約束」,「密鑰用法」和「增強密鑰用法」,您是否可以通過命令行從OpenSSL執行此操作? – Martin 2012-03-09 20:47:42