2011-01-18 19 views
8

quindi sto cercando di ottenere openssl che funziona sull'installazione di Windows di xampp (1.7.3) che è stato creato con OpenSSL 0.9.8l. Questa è solo la seconda volta che installo openssl su un'installazione * amp, ma la prima volta è andato a gonfie vele (era un'installazione di un wamp sulla stessa macchina, ma ho scoperto che xampp era più il mio stile, quindi sono passato).xampp openssl errori quando si chiama openssl_pkey_new();

quando ho tentato un semplice script di installazione:

var_dump(getenv('OPENSSL_CONF')); 
$privateKey = openssl_pkey_new(); 

while($message = openssl_error_string()){ 
    echo $message.'<br />'.PHP_EOL; 
} 

ho ottenuto un messaggio restituito:

error:02001003:system library:fopen:No such process 
error:2006D080:BIO routines:BIO_new_file:no such file 
error:0E064002:configuration file routines:CONF_load:system lib 

ho letto la pagina di php.net che mi ha informato circa la possibilità di dover impostare la le costanti di ambiente openssl.cnf e ssleay.dll, l'ho provato ma non è cambiato nulla.

Un var_dump di OPENSSL_CONF portato nel percorso: C:/xampp/apache/bin/openssl.cnf che è corretto per la mia macchina.

Ho controllato che il percorso della directory php (dove si trovano ssleay32.dll e libeay32.dll) è stato definito nel mio sistema di percorsi var, e non lo era, quindi l'ho definito, riavviato la mia macchina e nel processo riavviato apache, ma nessuna modifica nei messaggi di errore.

la mia versione di xampp non è stata fornita con php_openssl.dll e, come tale, credo che il documento php.ini dovrebbe escluderlo dall'elenco di file .dll disponibili come è stato fatto quando ho controllato. Credo che xampp provenga invece con un'estensione basata su zend.

Sono in grado di avviare openssl dalla xampp gui e ho creato con successo una coppia di chiavi privata/pubblica.

phpinfo() relazioni:

supporto OpenSSL OpenSSL abilitati
OpenSSL Biblioteca Versione OpenSSL
0.9.8l 5 Nov 2009 OpenSSL Header versione OpenSSL 0.9.8l 5 nov 2009

lì era un vecchio ssleay.dll e libeay32.dll dall'installazione di wamp presumo nella mia directory di sistema ma li ho cancellati da allora. (riavviato dopo, e riavviato apache)

Ho provato a copiare openssl.cnf nella directory predefinita'C: \ usr \ local \ ssl \ openssl.cnf 'nessuna modifica.

Ho letto anche il thread this e il thread this ma le risposte fornite erano pertinenti ma non riuscivano ad aiutare o erano inesistenti.

Qualcuno ha qualche idea su cosa dovrei controllare in seguito o qualcosa di ovvio che mi sia sfuggito?

+0

la sua interessante '' OPENSSL_CONF' è C:/xampp/apache/bin/openssl. cnf', che è ben configurato. L'unico piccolo inconveniente è che Windows usa le barre indietro, non le barre in avanti. – jww

risposta

12

Forse è necessario specificare il percorso del file al momento della chiamata openssl.cnfopenssl_pkey_new():

$configArgs = array(
    'config' => '/etc/openssl/openssl.cnf', 
    // ... 
); 
openssl_pkey_new($configArgs); 

Potrebbe anche essere necessario per specificare ulteriori informazioni nella $configArgs per la funzione di lavorare (non hanno testato che ultimamente). Vedere anche http://php.net/manual/en/function.openssl-csr-new.php per una descrizione degli ulteriori argomenti di configurazione supportati.

+1

ok Posso provarlo, ho pensato che la funzione dovrebbe cercare il file openssl.cnf basato sul routing specificato su http://www.php.net/manual/en/openssl.installation.php, ma forse non ha accesso all'ambiente var? – xenador

+0

dove si trova openssl.cnf –

+0

Dipende dall'installazione di OpenSSL. Se usi OpenSSL da un sistema Linux con gestione dei pacchetti, può essere in '/ etc/openssl /' come nell'esempio. Puoi trovare una variabile d'ambiente del server web '$ _SERVER ['OPENSSL_CONF']' che ti dà la posizione. – Archimedix

4

Si controlla la variabile OPENSSL_CONF in XAMPP/apache/conf/extra/http-xampp.conf

Quindi avviare apache con il/apache_start.bat non il pannello XAMPP XAMPP DI CONTROLLO (il suo strano che quando viene avviato dal pannello di controllo non funziona [forse un problema attuale directory])

Questo è per XAMPP 1.7.4 su Win7 64 bit

Problemi correlati