Параметры отдельных функции модуля openssl требуют аргумента в виде ключа или сертификата. Ключи и сертификаты получают следующими методами:
Сертификаты
Экземпляр класса OpenSSLCertificate
(или до PHP 8.0.0 ресурс (resource), который принадлежит типу OpenSSL X.509),
который возвращает функция openssl_x509_read().
Строка в формате file://path/to/cert.pem; именованный файл должен содержать PEM-сертификат.
Строка с содержимым PEM-сертификата,
может начинаться с -----BEGIN CERTIFICATE-----.
Запросы на подпись сертификата (Certificate Signing Requests, или CSRs)
Экземпляр класса OpenSSLCertificateSigningRequest
(или до PHP 8.0.0 ресурс (resource), который принадлежит типу OpenSSL X.509 CSR),
который возвращает функция openssl_csr_new().
Строка в формате file://path/to/csr.pem; именованный файл должен содержать CSR-запрос в формате PEM.
Строка с содержимым CSR-запроса в формате PEM,
может начинаться с -----BEGIN CERTIFICATE REQUEST-----.
Открытые и закрытые ключи
Экземпляр класса OpenSSLAsymmetricKey
(или до PHP 8.0.0 ресурс (resource), который принадлежит типу OpenSSL key),
который возвращает функция openssl_get_publickey()
или openssl_get_privatekey().
Только для открытых ключей: экземпляр класса OpenSSLCertificate
(или до PHP 8.0.0 ресурс (resource), который принадлежит типу OpenSSL X.509).
Строка в формате file://path/to/file.pem; именованный файл должен содержать сертификат/закрытый ключ в формате PEM (может содержать и ключ, и сертификат).
Строка с содержимым сертификата/ключа в формате PEM,
может начинаться с -----BEGIN PUBLIC KEY-----.
Для закрытых ключей допускается синтаксис
array($key, $passphrase), где переменная $key —
ключ, который задали строкой вида file:// или нотацией текстового содержимого,
которое описывает эта страница, а переменная $passphrase —
строка, которая содержит парольную фразу для заданного закрытого ключа.