openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_new — Генерує CSR

Опис

openssl_csr_new(    array $distinguished_names,    OpenSSLAsymmetricKey &$private_key,    ?array $options = null,    ?array $extra_attributes = null): OpenSSLCertificateSigningRequest|false

openssl_csr_new() створює новий CSR ґрунтуючись на інформації, зазначеній у параметрі distinguished_names

Зауваження: Для коректної роботи цієї функції має бути правильний openssl.cnf. Для більш детальної інформації дивіться зауваження під розділом установки

Список параметрів

distinguished_names

Унікальне ім'я (Distinguished Name) або поля суб'єкта для використання у сертифікаті.

private_key

Параметрprivate_key має бути заданий закритим ключем раніше згенерованим функцією openssl_pkey_new() (або отриманий за допомогою будь-якої іншої функції сімейства openssl_pkey). Відповідна відкрита частина ключа буде використана для підписання CSR.

options

За замовчуванням для ініціалізації запиту використовується інформація з системного openssl.conf. Ви можете вказати розділ конфігураційного файлу шляхом завдання ключа config_section_sectionвoptions. Також ви можете задати альтернативний конфігураційний файл openssl шляхом завдання ключа config значенням шляху до нього. Відповідність ключів, зазначених у optionsключам изopenssl.confпредставлено ниже.

Перевизначення конфігурації

Ключ optionsТипСоответствие в openssl.confОпис
digest_algstringdefault_mdОдин из методовopenssl_get_md_methods()
x509_extensionsstringx509_extensionsВизначає, яке розширення має використовуватись для створення сертифіката x509
req_extensionsstringreq_extensionsВизначає, яке розширення має використовуватись для створення CSR
private_key_bitsintdefault_bitsЗадає, скільки біт має використовуватись для генерації закритого ключа
private_key_typeintnoneЗадає тип закритого ключа, що створюється. Одна з констант: OPENSSL_KEYTYPE_DSAOPENSSL_KEYTYPE_DHOPENSSL_KEYTYPE_RSA або OPENSSL_KEYTYPE_ECПо умолчаниюOPENSSL_KEYTYPE_RSA
encrypt_keyboolencrypt_keyЧи повинен шифруватися (паролем) ключ, що експортується?
encrypt_key_cipherintnoneОдна изконстант шифрів
curve_namestringnoneОдне з openssl_get_curve_names()
configstringN/AШлях до альтернативного конфігураційного файлу openssl.conf.

extra_attributes

extra_attributes використовується для визначення додаткових опцій для CSR. І distinguished_names, иextra_attributes є асоціативними масивами, ключі яких перетворюються на OI-и і застосовуються до відповідних частин запиту.

Значення, що повертаються

Повертає CSR або **false**в случае возникновения ошибки.

список змін

ВерсияОпис
8.0.0csr тепер приймає екземпляр OpenSSLCertificateSigningRequest; раніше приймався ресурс (resource) типуOpenSSL X.509 CSR
8.0.0private_key тепер приймає екземпляр OpenSSLAsymmetricKey; раніше приймався ресурс (resource) типуOpenSSL key
7.1.0Параметрoptions тепер підтримує curve_name

Приклади

Приклад #1 Створення самопідписаного сертифіката

Loading...

Приклад #2 Створення самопідписаного сертифіката ECC (починаючи з PHP 7.1.0)

Loading...

Дивіться також

  • openssl_csr_sign() - Підписати CSR за допомогою іншого сертифіката (або ним же) та створити сертифікат