Instalación

Para utilizar el soporte OpenSSL de PHP, también debe compilarse PHP con la opción de configuración --with-openssl.

La biblioteca OpenSSL también posee dependencias en tiempo de ejecución. Por ejemplo, OpenSSL necesita acceder a un generador de números pseudo-aleatorios; en la mayoría de las plataformas Unix (incluyendo Linux), debe tener acceso al dispositivo /dev/urandom o /dev/random.

La opción de configuración --with-system-ciphers está disponible que hace que PHP utilice la lista de cifrado del sistema en lugar de los valores por omisión codificados en el programa.

Nota: Nota para usuarios Win32

Para que esta extensión funcione, hay unos ficheros DLL que deben estar disponibles en el PATH del sistema de Windows. Para obtener más información sobre esto, vea la FAQ titulada "Como añadir mi directorio de PHP al PATH de Windows". Aunque copiar los ficheros DLL desde el directorio PHP al directorio del sistema de Windows también funciona (porque el directorio del sistema está de manera predeterminada en el PATH del sistema), no se recomienda. Esta extensión requiere que los siguientes ficheros esten en el PATH: libeay32.dll, o, a partir de OpenSSL 1.1, libcrypto-*.dll

Además, si se ha previsto utilizar las funciones relativas a la generación de claves y a los certificados, debe instalarse un fichero openssl.cnf válido en el sistema. Un fichero de configuración básico está incluido en las distribuciones de PHP para win32 en el directorio extras/ssl.

PHP buscará el fichero openssl.cnf siguiendo la siguiente táctica:

  • La variable de entorno OPENSSL_CONF, si está definida, será utilizada como ruta (incluyendo el fichero) hacia el fichero de configuración.
  • La variable de entorno SSLEAY_CONF, si está definida, será utilizada como ruta (incluyendo el fichero) hacia el fichero de configuración.
  • El fichero openssl.cnf se supondrá que se encuentra en el directorio de certificados, tal como se configuró durante la compilación de la biblioteca openssl. Esto significa generalmente C:\Program Files\Common Files\SSL\openssl.cnf (x64) o C:\Program Files (x86)\Common Files\SSL\openssl.cnf (x86), o, antes de PHP 7.4.0, c:\usr\local\ssl\openssl.cnf.

En su instalación, deberá decidirse si se va a instalar el fichero de configuración en la ruta por omisión o si se va a hacer en otro lugar y configurar una variable de entorno (posiblemente por sitio virtual). Tenga en cuenta que es posible reemplazar la ruta por omisión utilizando el parámetro options de las funciones que requieren un fichero de configuración.
Precaución

Asegúrese de que los usuarios no privilegiados no estén autorizados a modificar openssl.cnf.

A partir de OpenSSL 3.0.0, que se utiliza por omisión en Windows desde PHP 8.2.0, varios algoritmos han sido considerados obsoletos. Estos algoritmos suelen haber caído en desuso, han sido considerados no seguros por la comunidad criptográfica, o algo similar. Estos algoritmos siguen disponibles a través del proveedor de algoritmos legacy (extras/ssl/legacy.dll) ; su utilización se describe en la sección » configuración del proveedor del manual OpenSSL.

Historial de cambios

Versión Descripción
7.4.0 La opción --with-openssl[=DIR] ya no acepta argumentos de directorio en favor del ajuste de la variable pkg-config PKG_CONFIG_PATH hacia la ubicación de OpenSSL, o especificando las variables OPENSSL_LIBS y OPENSSL_CFLAGS.
La ruta de configuración por omisión de OpenSSL ha sido modificada de C:\usr\local\ssl a C:\Program Files\Common Files\SSL y C:\Program Files (x86)\Common Files\SSL, respectivamente.