Un bon nombre de fonctions OpenSSL exigent une clé ou un certificat comme paramètres. Les méthodes suivantes peuvent être utilisées pour les récupérer:
Certificats
Une instance de OpenSSLCertificate
(ou antérieur à PHP 8.0.0, une resource de type OpenSSL X.509)
retournée par openssl_x509_read()
Une chaîne au format file://path/to/cert.pem; Le fichier ainsi repéré doit contenir un certificat, encodé au format PEM.
Une chaîne contenant le contenu d'un certificat, encodé
au format PEM, peut commencer par -----BEGIN CERTIFICATE-----.
Demandes de signature de certificat (Certificate Signing Requests abrévié CSRs)
Une instance de OpenSSLCertificateSigningRequest
(ou antérieur à PHP 8.0.0, une resource de type OpenSSL X.509 CSR)
retournée par openssl_csr_new()
Une chaîne de caractères ayant le format file://path/to/csr.pem ; le fichier nommé doit contenir un CSR encodé au format PEM.
Une chaîne de caractères contenant le contenu d'un CSR, encodé au format PEM,
peut commencer par -----BEGIN CERTIFICATE REQUEST-----.
Clés publiques/privées
Une instance de OpenSSLAsymmetricKey
(ou antérieur à PHP 8.0.0, une resource de type OpenSSL key)
retournée par openssl_get_publickey() ou
openssl_get_privatekey()
Pour les clés publiques uniquement : une instance de OpenSSLCertificate
(ou antérieur à PHP 8.0.0, une resource de type OpenSSL X.509)
Une chaîne avec le format : file://path/to/file.pem. Le fichier doit contenir une clé privée, ou un certificat, encodé au format PEM (il peut contenir les deux).
Une chaîne de caractères contenant le contenu d'un certificat/clé, encodé au format PEM,
peut commencer par -----BEGIN PUBLIC KEY-----.
Pour les clés privées, il est également possible d'utiliser la
syntaxe array($key, $passphrase), où
$key
représente une clé spécifiée par un
fichier ou une représentation textuelle comme
cité ci-dessus, et $passphrase représente une
chaîne contenant la phrase de passe de cette clé privée.