Node.js ExpressJS+;SSL自签名&x2B;HTTPS
第一件事是我没有收到任何错误,我的网站正在运行,显然,很好 我刚刚用ReactJS构建了一个webapp,并用ExpressJS提供服务。我决定开始使用HTTPS并以这种方式设置服务器:Node.js ExpressJS+;SSL自签名&x2B;HTTPS,node.js,express,https,Node.js,Express,Https,第一件事是我没有收到任何错误,我的网站正在运行,显然,很好 我刚刚用ReactJS构建了一个webapp,并用ExpressJS提供服务。我决定开始使用HTTPS并以这种方式设置服务器: 让fs=require('fs'); let express=require('express') 让http=require('http') 让https=require('https') 让config=require('config') 让server=express() 让privateKey=fs.r
让fs=require('fs');
let express=require('express')
让http=require('http')
让https=require('https')
让config=require('config')
让server=express()
让privateKey=fs.readFileSync('./config/key.pem','utf8')
让certificate=fs.readFileSync('./config/cert.pem',utf8')
let credentials={key:privateKey,cert:certificate,passphrase:config.sslPhrase}
让httpServer=http.createServer(服务器)
让httpsServer=https.createServer(凭据,服务器)
//有些路线。。。
httpServer.listen(80)
httpsServer.listen(443)
我的服务器正在按预期运行,只有一个例外:
我所期待的是:
我的网站上没有任何机密数据,也没有cookies,没有任何密码类型的字段
有很多教程解释了如何在站点上实现HTTPS,但即使在这些教程中,它们也显示了相同的结果。这不是我所期望的
所以我的部分问题是:为什么会这样?
第二部分是:我该怎么办?
为什么会这样
因为您的证书是自签名的,因此浏览器不会自动信任您的证书。您的通信可能是安全的,但浏览器不知道是否可以信任连接来自它所说的实际域,因为它不信任您的证书颁发机构
我该怎么办
要为所有浏览器解决此问题,您必须从一个服务获取证书,该服务颁发由浏览器中内置信任的证书颁发机构之一信任的证书。这样做的一个免费选项是。要仅针对您自己的浏览器解决此问题,您可以告诉您的浏览器信任您的自签名证书
您无法获得所有浏览器都信任的自签名证书。证书信任系统就是不能这样工作。您是否在问为什么在使用自签名证书时会出现不受信任的证书错误?我认为在这里提及“我应该做什么?”会很有用。@mscdex-我添加了一个对Lets Encrypt的引用。