首页 > 解决方案 > 如何切换到 https 连接(react 客户端、express api)

问题描述

我有一个使用 reactjs 前端和 express 服务器作为后端构建的网站,通过 http 进行通信。现在我需要切换到 https。我需要在哪里进行更改?

我的理解是,我主要需要更改快速服务器和前端以仅将 url 切换为https://url。我实现了标准的 express https 服务器配置。

贝娄是我的快递服务器代码:

const express = require('express')
const fs = require('fs')
const https = require('https')
const cors = require('cors')
const bodyParser = require('body-parser')
const passport = require('passport')
const localSignupStrategy = require('./passport/local-signup')
const localLoginStrategy = require('./passport/local-login')
const authRoutes = require('./routes/auth')
const productsRoutes = require('./routes/products')

const path = require('path')
// db
let env = process.env.NODE_ENV || 'development'
let settings = require('./config/settings')[env]

const app = express()

app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(passport.initialize())
app.use(cors())
// db
require('./config/database')(settings)

passport.use('local-signup', localSignupStrategy)
passport.use('local-login', localLoginStrategy)

app.use((req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*')
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
    next()
})

app.use(express.static(path.join(__dirname, '../public')))

// routes
app.use('/auth', authRoutes)
app.use('/products', productsRoutes)

let options = {
    key: fs.readFileSync('privatekey.pem'),
    cert: fs.readFileSync('certificate.pem')
}

https.createServer(options, app).listen(settings.httpsPort, () => {
    console.log(`Server running on port ${settings.httpsPort}...`)
})

在本地测试时出现此错误:

“加载资源失败:net::ERR_CONNECTION_REFUSED”

当我打电话给我的服务器时,我不知道这到底告诉了我什么。我不确定是证书、服务器配置还是反应客户端,我通常不知道如何考虑解决问题。

任何指导将不胜感激。

标签: node.jsreactjsexpresshttps

解决方案


推荐阅读