代码之家  ›  专栏  ›  技术社区  ›  Melchia

http上的服务工作者:获取脚本时发生SSL证书错误

  •  6
  • Melchia  · 技术社区  · 7 年前

    我正在为我的angular 4项目使用https而不是https的服务工作者。但我得到了这个错误: 服务工作者注册失败:DOMException:注册服务工作者失败:获取脚本时发生SSL证书错误。

    这是我的服务员。js公司

    module.exports = {
        navigateFallback: '/index.html',
        stripPrefix: 'dist',
        root: 'dist/',
        staticFileGlobs: [
            'dist/index.html',
            'dist/**.js',
            'dist/**.css',
            'dist/assets/image/**.*',
            'dist/assets/image/client-home-carousel/**.*',
        ]
    };
    

    在角度cli中。json:

    "assets": [
                "assets",
                "favicon.ico",
                "service-worker.js"
            ],
    
    2 回复  |  直到 7 年前
        1
  •  4
  •   pate    7 年前

    服务工作者只能通过HTTPS连接使用。你用不用?此外,HTTPS证书必须有效。

    顺便说一句,您显示的代码不是您的服务人员。js。该代码是一些SW库的参数和选项,然后生成您的服务工作者。js基于这些选项。很可能是你的实际服务人员。js位于dist目录中,并作为构建过程的一部分进行更新。

        2
  •  1
  •   Oleksii Kyslytsyn    5 年前

    如果特定的DomeException是在本地发生的,那么在使用证书访问本地机器上的web资源时,这些最新版本的浏览器启动可能会有所帮助:

    open -a Opera.app --args --user-data-dir=/tmp/foo --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost:8111
    
    open -a Brave\ Browser.app --args --user-data-dir=/tmp/foo --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost:8111
    
    open -a Google\ Chrome.app --args --user-data-dir=/tmp/foo --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost:8111
    

    Chromium浏览器并没有从这些设置开始,以允许克服这个特定的DomeException,即在本地与service worker一起使用SSL。

    这个人也提供了一些关于这个问题的见解: https://deanhume.com/testing-service-workers-locally-with-self-signed-certificates/