На моей веб-странице я включил веб-камеру foscam. Он работал как шарм, пока я не переключил свой домен с http на https. Проблема заключается в том, что вам не разрешено общаться с сайтом, отличным от https (foscam может общаться только через http) с сайта https. Это, кажется, делает совершенно смысл, если вы думаете об этом с точки зрения безопасности, но я хотел бы знать, если есть способ вокруг него
Для интеграции веб-камеры, я использую этот скрипт:
<script language="JavaScript" type="text/javascript">
function reload()
{
setTimeout('reloadImg("refresh")',10)
};
function reloadImg(id)
{
var obj = document.getElementById(id);
var date = new Date();
obj.src = "http://www.somedomain.com/snapshot.cgi?user=username&pwd=mypw&t=" + Math.floor(date.getTime()/10);
}
@endif
</script>
и
<img src="http://www.somedomain.com/snapshot.cgi?user=username&pwd=mypw&t" name="refresh" id="refresh" onload='reload(this)' onerror='reload(this)'>
Это все еще работает (хотя консоль действительно показывает ошибки, как
Mixed Содержание: страница на «https://www.somedomain.nl/webcam» был загружен через HTTPS, но запросил небезопасное изображение «http://www.somedomain.nl/snapshot.cgi?user=user&pwd=pass!&t=145244729934». Этот контент также должен обслуживаться через HTTPS.
Настоящая проблема, с которой я сталкиваюсь, - это кнопки управления веб-камерой. Для этого я использую такой код:
$("#left").click(function(){
$.get("http://www.somedomain.nl/decoder_control.cgi?command=6&user=username&pwd=pass&onestep=1",
function(data) {});
});
Эти кнопки не работают, и генерировать следующее сообщение об ошибке в консоли:
Mixed Содержание: страница на «https://www.somedomain.nl/webcam» был загружен через HTTPS, но запросил небезопасную конечную точку XMLHttpRequest 'http://www.somedomain.nl/decoder_control.cgi?command=2&user=someuser&pwd=pass!&onestep=1'. Этот запрос заблокирован; содержимое должно быть передано через HTTPS.send @ jquery.js: 8625jQuery.extend.ajax @ jquery.js: 8161jQuery. (анонимная функция) @ jquery.js: 8306 (анонимная функция) @ веб-камера: 38jQuery.event.dispatch @ jquery .js: 4430elemData.handle @ jquery.js: 4116
Есть ли способ обойти это?
Существует связанный с этим вопрос здесь (http://security.stackexchange.com/questions/56779/securing-remotely-accessible-ip-cameras-that-do-not-support-https), объясняя, как выставить камеру через https. Это связано, но если вы подключаетесь через интернет, это может стоить усилий. –
Спасибо за ваше предложение. Сделать связь с камерой через https с помощью обратного прокси-сервера действительно было правильным способом. – ErikL