即使使用 HTTPS,WebRTC 屏幕捕获仍然不安全

WebRTC screen capture is still unsafe even if HTTPS is used


我正在尝试捕获屏幕并将其显示在浏览器中 (Mozilla Firefox)。为此,我使用 WebRTC 和网络服务器。 HTML和JS在这里:

$(document).ready(function() {

    screen_constraints = { 
        video: {
          mediaSource: "screen"
        }   
    };

    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || window.navigator.mozGetUserMedia || navigator.msGetUserMedia;
    window.URL = window.URL || window.webkitURL;
    navigator.getUserMedia(screen_constraints, onstream, onerror);

    function onstream(stream) {

        var video = document.querySelector('video');
        video.src = window.URL.createObjectURL(stream);
        video.play();
    }

    function onerror(e) {

      console.error(e); 
    }
});
<!DOCTYPE html>
<head>
<script type="text/javascript" src="jquery-2.1.4.js"></script>
<script type="text/javascript" src="scripts.js"></script>
</head>
<body>

        <video autoplay></video>

</body>
</html>

但是执行这段代码后出现错误,控制台显示:

MediaStreamError { name: "SecurityError", message: "The operation is insecure.", constraint: "", stack: "" }

控制台还显示错误前的警告:"This site uses the SHA-1 certificate; it is recommended to use certificates with the signature algorithms that use stronger hash than SHA-1."。 我正在使用 HTTPS,我已将我的站点添加到我的浏览器的例外列表中并允许它的所有权限,但此错误不断发生:(
请帮我解决这个问题!

可能是同源问题。确保在 about:config

中正确设置标志
  • 确保 media.getusermedia.screensharing.enabled 设置为真

  • 并且 media.getusermedia.screensharing.allowed_domains 列表包含您的域名(包括 www. 如果它在您的证书中是这样的话),

  • 还有This site uses the SHA-1 certificate;...警告可以无视,不影响屏幕共享。