我在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
警告。
如上面的屏幕截图所示,我能够查看其证书(尽管存在错误ERR_CERT_COMMON_NAME_INVALID
)。我将证书复制到桌面并将其拖至login
工具的Keychain Access
,并将其设置修改为Always Trust
。我重新启动了Chrome,重新加载了该页面,但Not Secure
警告仍在那里。
有人可以帮忙吗?
答案 0 :(得分:3)
关于这个问题实际上有很多线索,这些都非常令人困惑。我写的方式适合我。
我终于按照此页面生成了文件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
,然后转到Security
的{{1}}标签查看其证书。然后将证书拖到桌面上。
双击桌面上的证书,该证书将打开Dev Tools
。确保证书位于Keychain Access
(不一定是login
)。如果不是,则在system
。
将所有内容更改为login
(可能重新启动Always Trust
),在申请Chrome
之后,享受使用Green Secure Light冲浪npm start
。
答案 1 :(得分:0)
您确定要设置证书颁发机构吗?也许您只在代码中设置https
,但忘记为您的应用设置本地证书颁发机构以验证证书。如果是这种情况,请参考:http://www.techrepublic.com/blog/apple-in-the-enterprise/create-your-own-ssl-ca-with-the-os-x-keychain/