2011-07-12 20 views
7

Estoy tratando de reproducir un video .mp4 en un iPad (navegador Safari) usando el elemento de video HTML 5. Todo funciona bien usando HTTP. Sin embargo, el video no se cargará (ni reproducirá) cuando se acceda mediante HTTPS. Si tengo acceso al mismo sitio web desde mi navegador Desktop Chrome, puedo cargar y reproducir el video usando HTTPS. Hay sugerencias en otras partes de la Web sobre Quicktime y HTTPS que no funcionan en el iPad. ¿Es este el mismo problema?HTML5 Video en IPad Safari usando HTTPS

+0

Creo que este post va a ayudar a responder a su pregunta: http://stackoverflow.com/questions/4660189/cannot-view-quicktime-movies-over-https-in-safari-or-uiwebview – eivers88

Respuesta

2

El certificado SSL que está utilizando probablemente no fue emitido por una autoridad de certificación raíz (o CA) de confianza de iOS/Safari.

Los certificados SSL hoy en día son emitidos por "CA intermedias".
Es decir, una CA de confianza por la CA raíz.
Sin embargo, su navegador/sistema operativo no sabe nada al respecto.
Solo sabe que su certificado SSL fue emitido por una CA en la que no confía.

Por lo tanto, debe informar a iOS/Safari que la CA raíz en la que confía Safari realmente confía en su CA intermedia.

Por lo tanto, debe descargar el Certificado intermedio de su CA e instalar ese Certificado intermedio en su servidor para que Safari/iOS reproduzca su video HTTPS (HTTPS = HTTP a través de SSL).

En caso de que su CA sea una CA de confianza por una CA que sea de confianza por una CA raíz, deberá instalar también el segundo certificado intermedio. En términos generales, si su nivel de confianza de CA está encadenado N veces, debe colocar todos los N certificados en su servidor.

Con el fin de la cadena de sus certificados:

cat certfile1 certfile2 ... certfileN > www.YOUR_DOMAIN.com.chained.crt 

por ejemplo

cat www.example.com.crt intermediary.crt > www.example.com.chained.crt 

a continuación, poner el certificado encadenado en el archivo de configuración del servidor virtual (esto es para nginx):

server { 
    listen    443 ssl; 
    server_name   www.example.com; 
    ssl_certificate  www.example.com.chained.crt; 
    ssl_certificate_key www.example.com.key; 
    ... 
} 

Y por si acaso se es joven e ingenuo:
SSL cadena de certificados El orden es importante
(a algunas implementaciones muy, muy delicado SSL)

El orden debe ser:

<your certificate> 
<your cert signer> 
<signer for your cert signer> 
<etc> 
Cuestiones relacionadas