信任 Chrome 和 Mac 中 MEAN 堆栈的 https://localhost:3000/
Posted
技术标签:
【中文标题】信任 Chrome 和 Mac 中 MEAN 堆栈的 https://localhost:3000/【英文标题】:Trust https://localhost:3000/ of MEAN stack in Chrome & Mac 【发布时间】:2017-03-08 00:42:22 【问题描述】:我在 macOS Sierra 10.12.3 中使用 Chrome。我想我很久以前就已经为localhost
设置了ssl
。现在,Chrome 中的http://localhost/
和https://localhost/
都会返回localhost
下的文件夹列表。我创建了一个 nodejs 应用程序。因此,在命令行中输入npm start
以运行服务器后,我们可以在Chrome 中将http://localhost:3000/#/home
作为前端打开。
现在,出于某种原因,我需要让 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
警告。
如上面的截图所示,我能够查看它的证书(虽然有一个错误ERR_CERT_COMMON_NAME_INVALID
)。我把证书复制到桌面,拖到Keychain Access
工具的login
,修改设置为Always Trust
。我重新启动了 Chrome,重新加载了页面,但 Not Secure
警告仍然存在。
有人可以帮忙吗?
【问题讨论】:
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops? “我想我已经为 localhost 设置了 ssl...” - 另见 How do you sign Certificate Signing Request with your Certification Authority 和 How to create a self-signed certificate with openssl?。 【参考方案1】:实际上有很多关于这个问题的线程,这很令人困惑。我写适合我的方式。
我终于按照这个页面生成了文件http://blog.mgechev.com/2014/02/19/create-https-tls-ssl-application-with-express-nodejs/。请注意,我将localhost
设置为Common Name
(不确定它是否真的是强制性的)。
在我的 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);
在 Chrome 中,我打开https://localhost:3000/#/new
,然后转到Dev Tools
的Security
选项卡以查看其证书。然后将证书拖到桌面上。
双击桌面上的证书,打开Keychain Access
。确保证书位于login
(不一定是system
)。如果不是,则将证书拖入login
。
将所有内容更改为Always Trust
(可能重新启动Chrome
),在npm start
应用程序之后,使用绿色安全灯享受冲浪https://localhost/#/new
。
【讨论】:
【参考方案2】:您确定设置了证书颁发机构吗?也许您只在代码中设置了https
,但忘记为您的应用设置本地证书颁发机构来验证证书。如果是这种情况,请参考:http://www.techrepublic.com/blog/apple-in-the-enterprise/create-your-own-ssl-ca-with-the-os-x-keychain/
【讨论】:
您面临的下一个错误可能是由于这是一个自签名证书,并非来自根级别证书颁发机构。本质上,您应该只需要在 chrome 中为此添加一个例外。请参考:linkedin.com/pulse/… 我没有看到On the "Certificate Store" screen of the import
...请看我的更新...以上是关于信任 Chrome 和 Mac 中 MEAN 堆栈的 https://localhost:3000/的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MEAN 堆栈中调试 Mongoose 和 MongoDB?
在 MongoDB 中存储和返回 ObjectId(MEAN 堆栈)