如何在PHP中定义X509证书的特定用途

Mik*_*ike 5 php openssl ssl-certificate x509certificate

如何在PHP 5.x 中将 X.509证书的用途设置为X509_PURPOSE_ANY

以下代码输出此警告:

警告:openssl_csr_new()[function.openssl-csr-new.php]:dn:X509_PURPOSE不是第45行/home/www/index.php中的可识别名称

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);
Run Code Online (Sandbox Code Playgroud)

最后一行是第45行.

Mar*_*tin 5

我找不到X509证书有"目的"的任何迹象.我只能找到"基本约束","密钥用法"和"增强密钥用法".

我能找到最接近的是http://www.openssl.org/docs/apps/verify.html它说

为了与先前版本的SSLeay和OpenSSL兼容,没有信任设置的证书被认为对所有目的都有效.