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:

  1. Fermate Apache.
  2. 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`
  3. A questo punto in `xampp\php\php.ini` rimuovete il punto e virgola anteposto alla stringa `extension=php_openssl.dll`
  4. Riavviate Apache

Buona crittazione a tutti.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.