Quiero crear un certificado autofirmado en PHP 5.x. con mi propia configuración openssl (alternativa) que debería ser definida por mi código PHP. El script PHP se ejecutará en diferentes entornos (servidores web de alojamiento compartido).¿OpenSSL realmente necesita una ruta a openssl.conf?
El funcionario PHP Manual dice:
Por defecto, la información en su openssl.conf sistema se utiliza para inicializar la solicitud; puede especificar una sección de archivo de configuración configurando la clave config_section_section de configargs. También puede especificar un archivo de configuración de openssl alternativo estableciendo el valor de la clave de configuración en la ruta del archivo que desea usar. Las siguientes teclas, si está presente en configargs se comportan como sus equivalentes en el openssl.conf, que se enumeran en la tabla de abajo .....
Mi pregunta: ¿Existe una razón por la que tengo que especificar la ruta a openssl.conf de forma explícita, ya que parece funcionar bien sin él:
$Configs = array(
'digest_alg' => 'sha1',
'x509_extensions' => 'v3_ca',
'req_extensions' => 'v3_req',
'private_key_bits' => 1024,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
'encrypt_key' => true,
'encrypt_key_cipher' => OPENSSL_CIPHER_3DES
);
$privkey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privkey, $Configs);
$sscert = openssl_csr_sign($csr, null, $privkey, 365, $Configs);
Editar:
en el notas de usuarios en el PHP Manual, ¿por qué siempre tienen que especificar una ruta a openssl.cnf ? Por ejemplo:
$configargs = array(
'config' => '/etc/ssl/openssl.cnf',
'digest_alg' => 'md5',
'x509_extensions' => 'v3_ca',
'req_extensions' => 'v3_req',
'private_key_bits' => 666,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
'encrypt_key' => false,
);
El archivo .conf se utiliza para especificar valores por defecto, por lo que no tiene que introducir la misma cosa una y más por cada cert que crees Ir sin los valores por defecto está bien, simplemente es más tedioso. –
No soy un experto en PHP/OpenSSL, pero parece que algunas configuraciones no pueden ser definidas/modificadas por un script PHP. ¿Alguien puede confirmar/descartar esto? – Mike