【问题标题】:nodejs express and using httpsnodejs express 并使用 https
【发布时间】:2017-06-23 01:39:13
【问题描述】:

我希望使用 https 实现一个正在运行的快速服务器,为 AngularJS 应用程序提供动力。目前,我的大部分应用程序仅在 http 上运行,但想切换。这不是公开可用的应用程序。我可以简单地使用自签名证书在我们的生产环境中实现这一点吗?或者我是否应该通过受信任的证书颁发机构,即使是供内部使用?

使用 OpenSSL 生成密钥和 pem 文件似乎很简单……但是当涉及到通过受信任的机构获取某些东西时,我感到很愚蠢。如果建议我确实使用受信任的 CA,而不是自签名,那么有人可以为我指明正确的方向吗?

【问题讨论】:

    标签: angularjs node.js express ssl https


    【解决方案1】:

    答案是“视情况而定”。

    您当然可以使用自签名证书,但您必须手动确保所有端点都配置为信任您的自签名证书。这就是受信任的证书颁发机构的用途。浏览器预先建立了对各种公共证书颁发机构颁发的证书的信任,反过来,他们同意遵循与颁发证书相关的某些程序。如果您完成该过程,那么浏览器将使用您的证书自动识别并信任 https 连接(假设一切都与连接的预期一致)。如果您不执行该过程,则必须手动告诉将要访问您的应用程序的每个端点信任您的证书。对于受控端点数量较少的封闭应用,这是非常可行的。对于开放应用程序或具有多种端点(随机浏览器、手机等)的应用程序,这很困难。

    而且,您不希望“教导”您的用户群忽略安全/证书警告或盲目相信浏览器告诉他们可能不安全的内容,因此您不希望将其留给用户 - 您希望预先配置端点以信任您的新自签名证书。


    举个例子,有些家庭安全摄像头系统可以访问网络。如果您需要通过 2 或 3 个不同的浏览器进行 Web 访问,那么使用自签名证书并将这 3 个浏览器配置为信任它并不是问题。

    但是,如果您有一些 Web 应用程序可供许多不同的人访问,那么在一组轮换的浏览器上管理证书信任实际上是不切实际的,而且它的复杂性会少得多,而且要复杂得多使用受信任的 CA 可能是安全的。

    【讨论】:

    • @dvsoukup - 这回答了你的问题吗?
    • 嘿,它做到了!谢谢一堆。使用自签名证书启动并运行,并为使用实际验证的证书提供了一条前进的道路。应该对用户很好。谢谢!
    【解决方案2】:

    我个人更喜欢在生产环境(甚至开发人员环境)中使用 CA 可信证书而不是自签名证书,因为在使用自签名证书时,您需要信任/添加例外或覆盖编程 SSL 检查。

    如果您决定使用 CA 可信证书,我建议您查看 Certbot + Let's Encrypt。它是受信任的 CA,支持大多数著名的服务器。它也是免费的,而且非常易于使用。唯一的缺点是您需要每 3 个月更新一次证书。这也可以根据您的平台/服务器自动化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-13
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 2020-06-07
      • 1970-01-01
      相关资源
      最近更新 更多