Voglio creare un certificato autofirmato in PHP 5.x. con la mia configurazione (alternativa) openssl che dovrebbe essere definita dal mio codice PHP. Lo script PHP verrà eseguito su ambienti diversi (server di hosting condiviso).OpenSSL ha davvero bisogno di un percorso per openssl.conf?
Il funzionario PHP Manual dice:
Per impostazione predefinita, le informazioni nel openssl.conf sistema viene utilizzato per inizializzare la richiesta; è possibile specificare una sezione del file di configurazione impostando la chiave config_section_section di configargs. È inoltre possibile specificare un file di configurazione openssl alternativo impostando il valore della chiave di configurazione sul percorso del file che si desidera utilizzare. I seguenti tasti, se presenti in configargs comportarsi come i loro equivalenti nel openssl.conf, come indicato nella tabella qui sotto .....
La mia domanda: C'è un motivo per cui devo specificare il percorso a openssl.conf esplicitamente, perché sembra funzionare bene senza di essa:
$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);
Modifica:
Nel note di utenti sul PHP Manual, perché hanno sempre specificare il percorso di openssl.cnf ? Per esempio:
$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,
);
Il file .conf viene utilizzato per specificare le impostazioni predefinite, in modo da non dover inserire la stessa cosa più e per ogni certificato che crei. Andare senza le impostazioni predefinite va bene, solo più noioso. –
Non sono un esperto di PHP/OpenSSL, ma sembra che alcune impostazioni di configurazione non possano essere definite/modificate da uno script PHP. Qualcuno può confermare/respingere questo? – Mike