环境:
域名:腾讯云
服务器:windows2019
前端:vue
后端:node
有关https证书安装,腾讯云有详细配置教程 链接
问题产生原因:
我把网站域名变成了https,接口也变成了http请求数据,node接口是http请求导致数据无法请求成功
①把接口由http请求转换成https请求
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
在更改成功之后,新的问题出现了,问题原因是https请求还是请求不到后端数据
②在后端添加https的请求方式
// 引入模块配置
let express = require('express')
let app = new express()
var cors = require('cors') // 后端解决跨域
app.use(cors())
let bodyParser = require('body-parser') //解析post发送出来的数据
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
let router = require('./router') //引入路由
app.use('/api', router)
// http,https请求数据配置
var fs = require('fs'); //引入文件模块
var http = require('http'); //引入http
var https = require('https'); //引入https
var privateKey = fs.readFileSync('./XXXX.top.key', 'utf8'); //密钥 这个是ssl解压后的文件
var certificate = fs.readFileSync('./XXXX.top_bundle.crt', 'utf8'); //公钥 这个是ssl解压后的文件
var caKey = fs.readFileSync('./XXXX.top.csr', 'utf8'); //ca认证 这个是ssl解压后的文件
var credentials = { key: privateKey, ca: [caKey], cert: certificate };
var httpServer = http.createServer(app); //创建http服务
var httpsServer = https.createServer(credentials, app); //创建https服务
var PORT = 8001; //http监听的端口
var SSLPORT = 8002; //https监听的端口
httpServer.listen(PORT, () => {
console.log('run success!port:8001.');
}); //http服务绑定端口
httpsServer.listen(SSLPORT, () => {
console.log('run success!port:8002.');
}); //https服务绑定端口
配置如上 完成之后,启动node服务,通过访问https请求接口数据就成功了 ,http访问接口数据也是可以拿到数据的,网站成功运行起来了