2017-01-03 12 views
0

У меня есть HTTP to HTTPS redirect, настроенный на сервере, для отображения json-данных, поступающих с arduino MCU на порт 8090. Мне нужно ограничить HTTP-перенаправление https, поэтому следующее this У меня настроено мой веб-сервер Apache нижеограничение http на https перенаправление для url, содержащего текст arduino

<VirtualHost *:80> 
     RewriteEngine on 
     ServerName  192.168.1.45 

     # force ssl 
     RewriteCond  %{SERVER_PORT} ^80$ 
     RewriteRule  ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

     # force HTTP for /arduino 
     RewriteCond %{HTTPS} =on 
     RewriteRule ^(arduino) http://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

</VirtualHost> 

я перезапущен сервер Apache и обновления страницы, но я все еще получаю ошибку в консоли браузера говоря:

[Предупреждение] [заблокирован] на странице в https://www.example.com/arduino/gauge.htm не разрешено отображать небезопасный контент от http://www.example.com:8090/json. (Jquery.min.js, линия 5)

Я даже пробовал:

<VirtualHost *:80> 
     RewriteEngine on 
     ServerName  192.168.1.45 

     # force ssl 
     RewriteCond  %{SERVER_PORT} ^80$ 
     RewriteRule  ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

     # force HTTP for /json 
     RewriteCond %(SERVER_PORT} ^8090 
     RewriteCond %{HTTPS} =on 
     RewriteRule ^(json) http://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

</VirtualHost> 

, но он не работает. такая же ошибка в консоли, любая помощь будет принята с благодарностью.

ответ

0

Я подозреваю, что проблема находится в браузере (клиенте) не в конфигурации вашего сервера. По соображениям безопасности, большинство современных блоков браузера все запросы HTTP, когда вы получаете страницу с HTTPS домена, в вашем случае: https://san.gotdns.ch/arduino/gauge.htm

В MDN:

Начиная с Firefox 23, Firefox блокирует активный смешанный контент по умолчанию , Это следует за практикой, принятой Internet Explorer (начиная с версии 9) и Chrome.

Может быть, эта статья может быть полезна для Вас:

https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content/How_to_fix_website_with_mixed_content

Интересная часть:

Как исправить ваш сайт

Лучшая стратегия, чтобы избежать смешанного содержимого блокировка должна обслуживать весь контент как HTTPS вместо HTTP.

Для своего домена, обслуживайте весь контент как HTTPS и исправляйте свои ссылки. Часто HTTPS-версия содержимого уже существует, и это просто требует добавления «s» к ссылкам - http: // в https: //.

Однако в некоторых случаях путь может быть неверным для носителя в . Существуют онлайн-инструменты, а также автономные инструменты (в зависимости от вашей операционной системы ), например linkchecker, чтобы решить эту проблему.

Для других доменов используйте HTTPS-версию сайта, если таковая имеется. Если HTTPS недоступен, вы можете попробовать связаться с доменом и спросить их, если они могут сделать контент доступным через HTTPS.

+0

В таком случае, что мне делать? –

+0

Я думаю, что если можно полностью пропустить перенаправление на https, я не попаду в эту яму –

+0

The json исходит от микроконтроллера, который не может доставить https –