Savipedia

La libreria delle soluzioni
Una soluzione in ogni libro, un libro per ogni soluzione.

" Abilitare OpenSSL su PHP sotto Windows " Niki

Navigatore Chiudi
  1. Per poter far funzionare OpenSSL sotto PHP in Windows occorre abilitare l'estensione "openssl" nel php.ini scommentando la riga "php_openssl.dll" e accertandosi che la distrubuzione PHP che si usa sia compilata con ssl.


    Fatto questo si passa all'utilizzo, che potrebbe tirare calci se non trova qualcosa.


    Affinché funzioni è necessario che riesca a trovare il file "libeay32.dll" all'interno del PATH.


    Fatto questo usare il programma di testa nella prossima pagina.

    1
  2. Questi annunci tengono il sito vivo e gratuito.
  3. Per procedere per favore attendi secondi. Grazie.
  4. <?php
    $secureConnection = isset($_SERVER['HTTPS']);
    // Create the keypair
    $res=openssl_pkey_new();
    // Get private key
    openssl_pkey_export($res, $privatekey);
    // Get public key
    $publickey=openssl_pkey_get_details($res);
    $publickey=$publickey["key"];
    echo "Private Key:<BR>$privatekey<br><br>Public Key:<BR>$publickey<BR><BR>";

    $cleartext = '1234 5678 9012 3456';
    echo "Clear text:<br>$cleartext<BR><BR>";
    openssl_public_encrypt($cleartext, $crypttext, $publickey);
    echo "Crypt text:<br>$crypttext<BR><BR>";

    openssl_private_decrypt($crypttext, $decrypted, $privatekey);
    echo "Decrypted text:<BR>$decrypted<br><br>";
    ?>
    2
  5. Se non funziona e restituisce un errore tipo:

    error:02001002:system library:fopen:No such file or directory

    oppure

    error:2006D080:BIO routines:BIO_new_file:no such file

    con ogni probabilità non riesce a trovare il file "openssl.cnf" che racchiude tutte le informazioni base dei criptaggi, tipo numero di bits delle chiavi, nomi, email ecc. per i certificati e così via.

    Di default si trova nella directory di installazione di PHP sotto la cartella "extras/openssl.cnf"

    Risorsa di Savipedia
    3
  6. Per farglielo trovare è sufficiente indicarglielo con la variabile d'ambiente OPENSSL_CONF.

    Quindi impostare la variabile d'ambiente coi seguenti valori (per chi non la sa, questa è la procedura):

    Nome: OPENSSL_CONF
    Valore: C:\path\php\extras\openssl.cnf

    Risorsa di Savipedia

    E' importante ricordare che è sempre bene un riavvìo del PC per rendere effettiva questa variabile.

    Riprovare, l'errore dovrebbe essersene andato.
    4
  7. error:0E06D06C:configuration file routines:NCONF_get_string:no value

    Nel caso si dovesse incorrere in questo errore alla chiamata di openssl_pkey_new() (riportato da "openssl_error_string()") stai sereno perché a quanto pare sembra essere un problema di PHP con OpenSSL.

    Qui c'è una discussione su StackOverflow che ne parla.
    5
  8. Manca proprio il supporto per OpenSSL (come indicato nel phpinfo)

    Nel caso PHP ignori proprio il supporto per OpenSSL (quindi nel php info si vede proprio scritto "OpenSSL support: disabled"), nonostante l'estensione "php_openssl.dll" sia stata abilitata, allora è facile che non Apache non trovi le dll necessarie per abilitare SSL.

    Per risolvere è sufficiente fornire la path alle 4 dll nel file httpd.conf di Apache:

    Define PHPROOT "C:/Users/Niki/Libs/php-5.5.34-Win32-VC11-x64"
    LoadFile "${PHPROOT}/libeay32.dll"
    LoadFile "${PHPROOT}/ssleay32.dll"
    LoadFile "${PHPROOT}/php5ts.dll"
    LoadFile "${PHPROOT}/libpq.dll"
    6
Questo sito fa uso di cookies per migliorare la tua esperienza pubblicitaria nei libri, la quale ci permette di mantenere il servizio gratuito, e per analizzarne il traffico per potenziare nel tempo la sua navigazione.
Continuando ad utilizzare il sito affermi di comprenderne la funzione e di accettarne l'utilizzo.