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_alg | string | default_md | Один из методовopenssl_get_md_methods() |
x509_extensions | string | x509_extensions | Визначає, яке розширення має використовуватись для створення сертифіката x509 |
req_extensions | string | req_extensions | Визначає, яке розширення має використовуватись для створення CSR |
private_key_bits | int | default_bits | Задає, скільки біт має використовуватись для генерації закритого ключа |
private_key_type | int | none | Задає тип закритого ключа, що створюється. Одна з констант: OPENSSL_KEYTYPE_DSA OPENSSL_KEYTYPE_DH OPENSSL_KEYTYPE_RSA або OPENSSL_KEYTYPE_EC По умолчаниюOPENSSL_KEYTYPE_RSA |
encrypt_key | bool | encrypt_key | Чи повинен шифруватися (паролем) ключ, що експортується? |
encrypt_key_cipher | int | none | Одна изконстант шифрів |
curve_name | string | none | Одне з openssl_get_curve_names() |
config | string | N/A | Шлях до альтернативного конфігураційного файлу openssl.conf. |
extra_attributes
extra_attributes
використовується для визначення додаткових опцій для CSR. І distinguished_names
, иextra_attributes
є асоціативними масивами, ключі яких перетворюються на OI-и і застосовуються до відповідних частин запиту.
Значення, що повертаються
Повертає CSR або **false
**в случае возникновения ошибки.
список змін
Версия | Опис |
---|---|
8.0.0 | csr тепер приймає екземпляр OpenSSLCertificateSigningRequest; раніше приймався ресурс (resource) типуOpenSSL X.509 CSR |
8.0.0 | private_key тепер приймає екземпляр OpenSSLAsymmetricKey; раніше приймався ресурс (resource) типуOpenSSL key |
7.1.0 | Параметрoptions тепер підтримує curve_name |
Приклади
Приклад #1 Створення самопідписаного сертифіката
Loading...
Приклад #2 Створення самопідписаного сертифіката ECC (починаючи з PHP 7.1.0)
Loading...
Дивіться також
- openssl_csr_sign() - Підписати CSR за допомогою іншого сертифіката (або ним же) та створити сертифікат