2011-07-12 14 views
7

Próbuję odtworzyć film w .mp4 na iPadzie (przeglądarce Safari) za pomocą elementu wideo HTML 5. Wszystko działa dobrze przy użyciu protokołu HTTP. Jednak wideo nie zostanie załadowane (lub odtworzone), gdy dostęp będzie uzyskiwany przy użyciu protokołu HTTPS. Jeśli mam dostęp do tej samej witryny z przeglądarki Chrome na komputerze, mogę załadować i odtworzyć wideo przy użyciu protokołu HTTPS. Istnieją wskazówki w innym miejscu w Internecie dotyczące Quicktime i HTTPS, które nie działają na iPadzie. Czy to ten sam problem?Wideo HTML5 na iPadzie Safari przy użyciu HTTPS

+0

Uważam ten post pomoże odpowiedzieć na pytanie: http://stackoverflow.com/questions/4660189/cannot-view-quicktime-movies-over-https-in-safari-or-uiwebview – eivers88

Odpowiedz

2

Prawdopodobnie używany certyfikat SSL nie został wydany przez zaufany główny urząd certyfikacji (lub urząd certyfikacji) systemu iOS/Safari.

Certyfikaty SSL są obecnie najprawdopodobniej wydawane przez "pośrednie urzędy certyfikacji".
To znaczy, że urząd certyfikacji jest zaufany przez główny urząd certyfikacji.
Jednak twoja przeglądarka/system operacyjny nic o tym nie wie.
To tylko wie, że Twój certyfikat SSL został wydany przez urząd certyfikacji, któremu nie ufał.

Musisz więc pozwolić systemowi iOS/Safari wiedzieć, że Twój pośredni urząd certyfikacji jest rzeczywiście zaufany przez główny urząd certyfikacji, któremu ufa Safari.

Należy zatem pobrać certyfikat pośredni z urzędu certyfikacji i zainstalować ten pośredni certyfikat na serwerze, aby Safari/iOS odtwarzało wideo HTTPS (HTTPS = HTTP przez SSL).

Jeśli Twój urząd certyfikacji jest urząd certyfikacji zaufany przez urząd certyfikacji zaufany przez główny urząd certyfikacji, musisz zainstalować także drugi certyfikat pośredni. Ogólnie rzecz biorąc, jeśli poziom zaufania CA jest łańcuchowo N razy, musisz umieścić wszystkie certyfikaty N na swoim serwerze.

Aby łańcuch swoje certyfikaty:

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

np

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

Następnie umieścić przykuty certyfikatu do pliku konfiguracyjnego serwera wirtualnego (to jest dla nginx):

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

i tylko w przypadku, gdy jesteś młody i naiwny:
SSL łańcucha certyfikatów zamówienie jest ważne
(dla niektórych, bardzo wybrednych implementacji SSL)

Zamówienie powinno być:

<your certificate> 
<your cert signer> 
<signer for your cert signer> 
<etc> 
Powiązane problemy