2012-03-07 16 views
5

¿Cómo puedo establecer el propósito de un certificado X.509 en X509_PURPOSE_ANY en PHP 5.x?Cómo definir un propósito particular de un certificado X509 en PHP

Las siguientes salidas de código de esta advertencia:

Advertencia: openssl_csr_new() [function.openssl-CSR-new.php]: dn: X509_PURPOSE no es un nombre reconocido en/home/www/index. PHP en la línea 45

script 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); 

La última línea es la línea 45.

+1

¿Ha intentado descartar las comillas simples '' 'de la matriz' $ ExtraAttribs'? –

+1

No funciona. Mensaje de error: "Uso de la constante no definida X509_PURPOSE - supone 'X509_PURPOSE'" – Mike

+4

No puedo encontrar ninguna indicación de que los certificados X509 tengan un "propósito". Solo puedo encontrar "Restricciones básicas", "Uso de clave" y "Uso mejorado de clave", ¿puede hacerlo desde OpenSSL en la línea de comandos? – Martin

Respuesta

5

No encuentro ninguna indicación de que los certificados X509 tengan un "propósito". Solo puedo encontrar "Restricciones básicas", "Uso de clave" y "Uso mejorado de clave".

Lo más parecido que pude encontrar es http://www.openssl.org/docs/apps/verify.html que dice

Para la compatibilidad con versiones anteriores de SSLeay y OpenSSL un certificado sin ajustes de seguridad se considera válido a todos los efectos.

+0

gracias por su ayuda – Mike

4

El propósito se establece en la firma, no en el CSR. Un vistazo rápido a los documentos php sugiere que esto no es compatible con la API, pero puede llamar al openssl x509 from the shell

Cuestiones relacionadas