在Chrome和&amp ;;中信任https:// localhost:3000 / MEAN堆栈苹果电脑

时间:2017-03-08 00:42:22

标签: ssl openssl localhost ssl-certificate keychain

我在macOS Sierra 10.12.3中使用Chrome。我想很久以前我已经为ssl设置了localhost。现在,Chrome中的http://localhost/https://localhost/都会返回localhost下的文件夹列表。我创建了一个nodejs应用程序。因此,在命令行中键入npm start以运行服务器之后,我们可以在Chrome中打开http://localhost:3000/#/home作为frond-end。

现在,出于某种原因,我需要让https://localhost:3000/#/home在Chrome中运行。目前,它会出现This site can't be reached; localhost unexpectedly closed the connection错误。

有谁知道如何修改这个?我应该在mac或我的应用程序的代码中设置一些内容吗?

修改1:我找到了这个页面:SSL/HTTPS server with Node.js and Express.js。所以我生成了文件并修改了节点代码。现在加载https://localhost:3000/#/posts/editor/会显示该页面,但我想删除恼人的Not Secure警告。

enter image description here

如上面的屏幕截图所示,我能够查看其证书(尽管存在错误ERR_CERT_COMMON_NAME_INVALID)。我将证书复制到桌面并将其拖至login工具的Keychain Access,并将其设置修改为Always Trust。我重新启动了Chrome,重新加载了该页面,但Not Secure警告仍在那里。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

关于这个问题实际上有很多线索,这些都非常令人困惑。我写的方式适合我。

  1. 我终于按照此页面生成了文件http://blog.mgechev.com/2014/02/19/create-https-tls-ssl-application-with-express-nodejs/。请注意,我将localhost设置为Common Name(不确定它是否真的是强制性的)。

  2. 在我的MEAN项目的www

    var fs = require("fs");
    var config = {
        key: fs.readFileSync('key.pem'),
        cert: fs.readFileSync('cert.pem')
    };
    var server = https.createServer(config, app).listen(3000);
    
  3. 在Chrome中,我打开https://localhost:3000/#/new,然后转到Security的{​​{1}}标签查看其证书。然后将证书拖到桌面上。

  4. 双击桌面上的证书,该证书将打开Dev Tools。确保证书位于Keychain Access(不一定是login)。如果不是,则在system

  5. 中拖动证书
  6. 将所有内容更改为login

  7. (可能重新启动Always Trust),在申请Chrome之后,享受使用Green Secure Light冲浪npm start

  8. enter image description here

答案 1 :(得分:0)

您确定要设置证书颁发机构吗?也许您只在代码中设置https,但忘记为您的应用设置本地证书颁发机构以验证证书。如果是这种情况,请参考:http://www.techrepublic.com/blog/apple-in-the-enterprise/create-your-own-ssl-ca-with-the-os-x-keychain/