## Installation

Pour utiliser le support OpenSSL de PHP, vous devez aussi compiler PHP avec l'option de configuration --with-openssl.

La bibliothèque OpenSSL possède aussi des dépendances à l'exécution. Par exemple, OpenSSL a besoin d'accéder à un générateur de nombres pseudo-aléatoires; sur la plupart des plateformes Unix (incluant donc Linux), elle doit avoir accès au périphérique `/dev/urandom` ou `/dev/random`.

L'option de configuration --with-system-ciphers est disponible qui fait que PHP utilise la liste de chiffrement système au lieu des valeurs par défaut codé en dur.

> Note: Note aux utilisateurs Win32

> Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la F.A.Q intitulée "Comment ajouter mon dossier PHP à mon PATH Windows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : libeay32.dll, ou, à partir de OpenSSL 1.1, libcrypto-*.dll

> De plus, si vous avez prévu d'utiliser les fonctions relatives à la génération de clés et aux certificats, vous devez installer un fichier openssl.cnf valide sur votre système. Un fichier de configuration de base est inclus dans les distributions de PHP pour win32 dans le dossier extras/ssl.

> PHP va rechercher le fichier openssl.cnf suivant la tactique suivante :

> - La variable d'environnement OPENSSL_CONF, si elle est définie, sera utilisée comme chemin (comprenant le fichier) vers le fichier de configuration.
> - La variable d'environnement SSLEAY_CONF, si elle est définie, sera utilisée comme chemin (comprenant le fichier) vers le fichier de configuration.
> - Le fichier openssl.cnf sera supposé se trouver dans le dossier des certificats, tel que configuré lors de la compilation de la bibliothèque openssl. Cela signifie généralement C:\Program Files\Common Files\SSL\openssl.cnf (x64) or C:\Program Files (x86)\Common Files\SSL\openssl.cnf (x86), ou, avant PHP 7.4.0, c:\usr\local\ssl\openssl.cnf.
> Dans votre installation, vous devrez décider si vous allez installer le fichier de configuration dans le chemin par défaut ou si vous allez le faire ailleurs et configurer une variable d'environnement (possiblement par site virtuel). Notez qu'il est possible de remplacer le chemin par défaut en utilisant le paramètre `options` des fonctions qui requièrent un fichier de configuration.
> Attention

> Veiller à ce que les utilisateurs non privilégiés ne soient pas autorisés à modifier openssl.cnf.

> À partir d'OpenSSL 3.0.0, qui est utilisé par défaut sur Windows depuis PHP 8.2.0, plusieurs algorithmes ont été jugés obsolètes. Ces algorithmes sont souvent tombés en désuétude, ont été considérés comme non sécurisés par la communauté cryptographique, ou quelque chose de similaire. Ces algorithmes sont encore disponibles via le fournisseur d'algorithmes legacy (extras/ssl/legacy.dll) ; son utilisation est décrite dans la section » configuration du fournisseur du manuel OpenSSL.

### Historique

Version | Description
--- | ---
7.4.0 | L'option --with-openssl[=DIR] n'accepte plus d'argument de répertoire en faveur du réglage de la variable pkg-config PKG_CONFIG_PATH vers l'emplacement d'OpenSSL, ou en spécifiant les variables OPENSSL_LIBS et OPENSSL_CFLAGS.
Le chemin de configuration par défaut d'OpenSSL a été modifié de C:\usr\local\ssl à C:\Program Files\Common Files\SSL et C:\Program Files (x86)\Common Files\SSL, respectivement.