【nginx】node搭建https服务器后 浏览器请求报错,postman请求没有问题

web页面是https的,但是后台还是http的node服务没升级,所以导致前端请求http的ip端口浏览器会报错。

然后按照步骤升级node服务到https后

https://itnext.io/node-expres...
node代码没有问题,启动运行ok

const express = require("express");

const app = express();

const https = require('https')

const http = require('http')

const fs = require('fs')

const bodyParser = require('body-parser')

const jwt= require('jsonwebtoken');

const expressJwt = require('express-jwt');

//根据项目的路径导入生成的证书文件

const privateKey = fs.readFileSync('/etc/letsencrypt/live/xxxx.xxx/privkey.pem', 'utf8');

const certificate = fs.readFileSync('/etc/letsencrypt/live/xxxx.xxx/cert.pem', 'utf8');

const ca = fs.readFileSync('/etc/letsencrypt/live/xxxx.xxx/chain.pem', 'utf8');

const credentials = {

key: privateKey,

cert: certificate,

ca: ca

};

var httpServer = http.createServer(app);

var httpsServer = https.createServer(credentials, app);

//可以分别设置http、https的访问端口号

var PORT = 3001;

var SSLPORT = 3002;

//创建http服务器

httpServer.listen(PORT, function() {

console.log('HTTP Server is running on: http://localhost:%s', PORT);

});

//创建https服务器

httpsServer.listen(SSLPORT, function() {

console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT);

});

但是 前端更改成https://172.XXX.XXX.XXX:3002浏览器会报错,但是postman没有问题

【nginx】node搭建https服务器后 浏览器请求报错,postman请求没有问题

【nginx】node搭建https服务器后 浏览器请求报错,postman请求没有问题

然后 如果在前端页面把 ip改成域名https://www.xxx.com:3002 就没问题 费解。。。

chrome的security如下

【nginx】node搭建https服务器后 浏览器请求报错,postman请求没有问题

回答

因为你生成https里指定的是域名而不是IP地址,浏览器有一个验证证书的过程。

证书签的是域名

https证书对应的是域名而不是ip

【nginx】node搭建https服务器后 浏览器请求报错,postman请求没有问题

以上是 【nginx】node搭建https服务器后 浏览器请求报错,postman请求没有问题 的全部内容, 来源链接: utcz.com/a/85100.html

回到顶部