在 Express for Prod 中管理 IIS 上的 HTTPS 签名证书



如何在部署到Windows IIS的节点/角度环境中管理DEV vs PROD中的API(HTTPS(证书?我已经看到上面提到了代理重写,但我不确定如何在快递方面管理它。

我知道在 PROD、IIS 和 web.config 中的重写有助于管理前端的证书,但我在 express 上看到的大多数 https 教程都需要对自签名证书进行硬编码并将其包含在构建中。在 PROD 中,我在服务器上有一个正式签名的证书,我将在端口 8443 上使用,但不确定它如何更改代码,请参见下文:

const express = require('express')
const app = express()
const https = require('https')
const fs = require('fs')
const port = process.env.PORT || 8443;
app.get('/', (req, res) => {
res.send("IT'S WORKING!")
})
const httpsOptions = {
key: fs.readFileSync('./security/cert.key'),
cert: fs.readFileSync('./security/cert.pem')
}
const server = https.createServer(httpsOptions, app)
.listen(port, () => {
console.log('server running at ' + port)
})

在单独但相关的说明中,我在 Angular 中的 API 服务如何更改为调用用于开发与 PROD 的后端 API。我猜这样的事情,IIS 会重新路由到 PROD 域?

private API_URL: string = 'https://localhost:8443/api/';

我看到上面提到了代理重写,但我不确定它是怎么回事 在快递方面管理。

它不需要在快递端进行管理。Express 不需要知道 IIS 注入的证书。

在 PROD 中,我在服务器上有一个正式签名的证书,我将在 端口 8443,但不确定它如何更改代码

Express 在 prod 中不需要证书,IIS 绑定会处理它。因此.js在服务器中,代码仅在开发并插入自签名证书时才包含httpsOptions。

在一个单独的但相关的说明中,我的API服务如何在Angular中 更改为调用用于开发与生产 的后端 API。我在猜什么 像这样,IIS 会重新路由到 PROD 域?

Angular CLI 应该为您提供一个包含 environment.prod.ts 和 environment.ts 文件的环境文件夹,这些文件将根据构建类型交换它们持有的变量值。只需在两者中为不同的 url 添加一个变量,以便在发送请求时调用 express。您的生产 url 将不是本地主机,而应该是用户将在生产中访问的实际 URL。

最新更新