Библиотека OpenSSL держит все настройки по-умолчанию в файле
openssl.cnf
Там туева хуча всяких параметров, многие из которых совсем необязательные.
Пробовал комментировать б
ольшую часть из них — все прекрасно работало.
Но, все (генерация ключей, подписание сертификатов) переставало работать,
после того, как я целиком удалял этот файл из папки библиотеки OpenSSL.
Кое-что (например, генерация ключей) вновь начинало работать, после того, как
я создавал пустой файл
openssl.cnf с каким-нибудь тривиальным содержимым.
Добрые люди подсказали, как же все-таки можно обойтись без этого файла вообще:
<?php
$config["config"] = "nul"; // "openssl.cnf";
$config["private_key_bits"] = 384; // 1024;
$config["private_key_type"] = OPENSSL_KEYTYPE_RSA;
$config["encrypt_key"] = false;
$config["digest_alg"] = "default"; // "sha1";
$privkey = openssl_pkey_new($config);
// То есть, нужно просто задать для параметра
config значение «nul».
// Но, дальнейшие мои самостоятельные шаги не привели к успеху:
$dn["countryName"] = "RU";
$dn["stateOrProvinceName"] = "Vladimirskaya";
$dn["localityName"] = "Vladimir";
$dn["organizationName"] = "Habrahabr";
$dn["organizationalUnitName"] = "Habr";
$dn["commonName"] = "1010101001000100110100111";
$dn["emailAddress"] = "1010101001000100110100111@habrahabr.ru";
$csr = openssl_csr_new($dn, $privkey, $config);
var_dump($csr);
На выходе получалось:
bool(false)
Чего же еще не хватает для полного счастья?
То есть, еакие конфиги еще необходимо задать?