openssl_pkey_new не работает в xampp
Я гуглил и изучал openssl в течение нескольких дней, и не нашел решения проблемы с openssl_pkey_new в XAMPP для Windows. Пробовал оба вер. 7.1.1 и 7.1.4. Каждый раз, когда я пытаюсь запустить этот код:
echo getenv('OPENSSL_CONF')."<p>";
$config = array(
"config" => "c:/xampp/apache/conf/openssl.cnf",
"digest_alg" => "sha256",
"private_key_bits" => 4096,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
);
// Create the private and public key
$res = openssl_pkey_new($config);
echo "<br>openssl_pkey_new: <br>";
//var_dump(openssl_error_string());
while($e = openssl_error_string() ) {
print_r($e."<br>\n");
}
// Extract the private key from $res to $privKey
openssl_pkey_export($res, $privKey);
echo "<br>openssl_pkey_export: <br>";
while($e = openssl_error_string() ) {
print_r($e."<br>\n");
}
// Extract the public key from $res to $pubKey
$pubKey = openssl_pkey_get_details($res);
$pubKey = $pubKey["key"];
echo "<br>openssl_pkey_get_details: <br>";
while($e = openssl_error_string() ) {
print_r($e."<br>\n");
}
Я получаю эти ошибки:
openssl_pkey_new:
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
error:0E06D06C:configuration file routines:NCONF_get_string:no value
error:0E06D06C:configuration file routines:NCONF_get_string:no value
error:0E06D06C:configuration file routines:NCONF_get_string:no value
error:0E06D06C:configuration file routines:NCONF_get_string:no value
openssl_pkey_export:
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
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
Может быть, ошибочные openssl.cnf или / и server.key+server.csr+server.crt и / или, возможно, ошибочные libeay32.dll+ssleay32.dll, или все плохо? неприятная проблема, чтобы быть мягким в моем выражении!!
Учебник по генерации ключей: https://latunyj.wordpress.com/2011/10/31/generating-self-signed-certificate-in-xampp-win32-for-apache-web-server/
Обширные ответы на проблему: что я должен сделать, чтобы работа над расширением OpenSSL на моем xampp (Windows)? :(
Другие ссылки: https://snippets.aktagon.com/snippets/543-how-to-fix-pem-read-bio-no-start-line-error-nginx-error http://au.php.net/manual/en/openssl.installation.php https://community.apachefriends.org/f/viewtopic.php?f=16&t=71199
Очень надеюсь, что кто-то знает ответ на эту проблему.
Редактировать:
Если вам интересно, почему это раздражает, это потому, что я использую RSA-OAEP между сервером и клиентом, реализуя openssl и webcrypto для шифрования / дешифрования ключей AES-CBC. Зашифрованные данные AES-CBC обмениваются вместе с зашифрованными ключами.
Мой временный обходной путь - генерация на сервере повторяющейся пары ключей RSA на клиенте и отправка открытым текстом. Хорошо для развития, но не подходит для производства. Это раздражающая часть. У XAMPP до 7.xx не было методов AES-CBC. Кстати, XAMPP - это только разработка.