Errore OpenSSL – Xampp – Don’t Know How To Get Public Key From This Private Key
Xampp, tra le sue varie estensioni, ne ha una che permette la gestione delle funzioni openSSL.
Per attivarla dovrebbe bastare la rimozione del punto e virgola davanti alla stringa “extension=php_openssl.dll” nel file php.ini. Ma questo non è sufficiente.
Prendiamo in considerazione questo codice:
<?php $key = <<<EOF -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXX/MsKEBLcLeKA1d/i7ufG1qs qS97xFkIRSeX3TwmHic843AfVrzoh2pZUeOvK9ZLZQpHSM7DoHMYDGD1273+FvZX Ypf5LiFtecfxko/Cku16zy6WAeCYVFjjlveBhwPmPCIk+qDRYeiIW05QE2XK+CuD nJ7sxxXIJSSgD3Jo5wIDAQAB -----END PUBLIC KEY----- EOF; print $key; $res = openssl_pkey_get_public($key); var_dump(openssl_pkey_get_details($res)); $text = "stringa da codificare"; openssl_public_encrypt($text,$crypttext,$res); ?>
Limitandoci alla sola attivazione del modulo openssl avremmo un errore del tipo “Don’t Know How To Get Public Key From This Private Key” all’atto dell’esecuzione della openssl_public_encrypt() anche se il dump della openssl_pkey_get_details fornisce dati validi.
Per ovviare a questo problema è necessario eseguire questi semplici step:
- Fermate Apache.
- Nella directory `xampp\php` sono prosenti due DLL: libeay32.dll e ssleay32.dll. Copiateli in xampp\apache\bin. Se sono già presenti, rinominateli prima di eseguire la copia dalla directory `xampp\php`
- A questo punto in `xampp\php\php.ini` rimuovete il punto e virgola anteposto alla stringa `extension=php_openssl.dll`
- Riavviate Apache
Buona crittazione a tutti.