Node.js无Express搭建内网服务:消除Chrome非安全警告
解决内网Node.js HTTP服务IP访问Chrome提示不安全的问题
Chrome提示“网站不安全”确实是因为你用的是HTTP协议而非HTTPS。内网私人场景下不需要付费CA证书,生成自签名SSL证书就能解决这个问题,步骤如下:
1. 生成自签名SSL证书(PFX格式)
用OpenSSL工具生成PFX证书(也就是你看到的crt.pfx文件),执行以下命令:
# 先生成私钥和证书文件 openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes # 将私钥和证书打包成PFX格式 openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
执行过程中会提示输入一些信息(比如国家、组织名),内网使用随便填写即可,最后设置一个密码(对应代码里的passphrase)。
2. 修改Node.js服务代码
把原来的http.createServer替换成https.createServer,加载生成的PFX文件:
const https = require('https'); const fs = require('fs'); const options = { pfx: fs.readFileSync('./server.pfx'), passphrase: '你刚才设置的密码' }; https.createServer(options, (req, res) => { // 你的原有请求处理逻辑,示例: res.writeHead(200); res.end('内网服务正常运行'); }).listen(443); // HTTPS默认用443端口,也可以改用8443这类自定义端口
3. 在内网设备上信任该证书
Chrome仍会提示不安全,因为自签名证书不被系统默认信任,需要手动添加信任:
- Windows:双击
server.crt文件,点击“安装证书”,选择“本地计算机”,将证书放入“受信任的根证书颁发机构”存储区。 - Mac:双击
server.crt,在钥匙串访问中找到该证书,右键选择“显示简介”,将“信任”设置为“始终信任”。 - Chrome浏览器:若系统信任后仍有提示,可在地址栏输入
chrome://settings/certificates,导入server.crt到“受信任的根证书颁发机构”。
完成以上步骤后,用IP访问内网服务时,Chrome就不会再弹出不安全警告了。
内容的提问来源于stack exchange,提问作者Axel Carré
相关产品推荐
相关产品推荐

