La siguiente es una lista de los varios transportes de socket estilo
URL que PHP tiene integrados para su uso con funciones de sockets
basados en secuencias, tales como fsockopen(), y
stream_socket_client(). Estos transportes
no se aplican a la Extensión de Sockets.
PHP 3, PHP 4, PHP 5. ssl:// &
tls:// a partir de PHP 4.3
Nota:
Si no se especifica un transporte, se
asumirá tcp://
127.0.0.1
fe80::1
www.example.com
tcp://127.0.0.1
tcp://fe80::1
tcp://www.example.com
udp://www.example.com
ssl://www.example.com
tls://www.example.com
Los sockets del Dominio de Internet esperan un número de
puerto junto con una dirección de destino. En el caso de
fsockopen(), éste es especificado en un
segundo parámetro y por lo tanto no tiene impacto sobre el
formato de la URL de transporte. Sin embargo, en el caso de
stream_socket_client() y funciones relacionadas,
así como ocurre con URLs tradicionales, el número de
puerto se especifica como un sufijo del URL de transporte
delimitado con el signo dos puntos.
tcp://127.0.0.1:80
tcp://[fe80::1]:80
tcp://www.example.com:80
Direcciones IPv6 numéricas con números de
puerto:
En el segundo ejemplo anterior, mientras que los ejemplos IPv4 y
con nombre de dominio fueron modificados solo ligeramente con la
adición de sus dos puntos y número de puerto, la
dirección IPv6 es rodeada por corchetes cuadrados:
[fe80::1]. Esto es para poder distinguir entre
los dos puntos usados en una dirección IPv6 y aquellos
usados para delimitar el número de puerto.
Los transportes ssl:// y
tls:// (disponibles únicamente cuando se
compila el soporte para openssl con PHP) son extensiones del
transporte tcp:// el cual incluye
encripción SSL. A partir de PHP 4.3.0 el
soporte OpenSSL debe ser compilado estáticamente con
PHP, a partir de PHP 5.0.0
puede ser compilado como módulo o estáticamente.
Tabla N-1.
Opciones de contexto para los
transportes ssl:// y tls://
(a partir de PHP 4.3.2)
Nombre
Uso
Predeterminado
verify_peer
TRUE o FALSE.
Requerir verificación del certificado SSL usado.
FALSE
allow_self_signed
TRUE o FALSE.
Permitir certificados firmados por uno mismo.
FALSE
cafile
Ubicación del archivo de Autoridad de Certificado en un
sistema de archivos local, el cual debe ser usado con la
opción de contexto verify_peer para
verificar la identidad del conector remoto.
capath
Si no se especifica cafile o el certificado
no se encuentra allí, el directorio apuntado
por capath es usado para buscar un
certificado apropiado. capath debe ser un
directorio de certificados correctamente habilitado mediante
resumen criptográfico.
local_cert
Ruta al archivo de certificado local en el sistema de
archivos. Debe ser un archivo codificado mediante PEM, el cual
contenga su certificado y llave privada. Opcionalmente, puede
contener la cadena de expendedores del certificado.
passphrase
La contraseña con la que el
archivo local_cert fue codificado.
CN_match
El nombre común (Common Name) que estamos
esperando. PHP realizará comparaciones limitadas de
comodines. Si el nombre común no produce coincidencias,
el intento de conexión fallará.
Nota:
Debido a que ssl:// es el transporte base para
las envolturas https:// y ftps://, cualquier
opción de contexto que se aplique
a ssl:// también se aplica a
https:// y ftps://.