npm run dev:ssl
启动该应用时,我会遇到以下控制台输出:
npm run start:ssl
尽管如此,尽管该应用程序托管在HTTPS上,但它仍然默认为HTTP并将连接标记为不安全,从而阻止了对Web应用程序的访问。我已经证实了SSL证书和密钥有效。
要解决问题,我还尝试在Nuxt.config.ts文件中直接配置服务器,如下所示,但结果保持不变:
'Listening on http::\\[..]:$port'
我的问题:
如何正确配置我的NUXT 3应用程序以便在自定义主机地址上使用HTTPS?
这是我第一次为NUXT应用程序设置生产环境,因此我可能会缺少一些关键步骤。我将非常感谢在此设置中配置HTTP的任何指导或建议。
行为详细信息:
我正在使用有效的SSL证书(已确认)dev:SSL脚本运作良好,但是在生产中出现了问题:SSL脚本。
NUXT应用需要在自定义IP地址上托管。 提前感谢您的帮助!
my版本的nuxt:v3.15 在开发模式下运行时,devServer.https.key和devserver.https.cert用于自动读取密钥和证书文件的内容。 密钥和证书的实际文本与devServer.port一起传递给https.server()。就像上面的Antonio Klepo的脚本定义一样,“主持人”选项为本地主机之外的连接打开了一个开发实例。
import fs from 'fs'
export default defineNuxtConfig({
// ...
server: {
host: 'XX.XXX.X.XX',
port: XXXX,
https: {
key: fs.readFileSync('correct_path_to_key.pem'),
cert: fs.readFileSync('correct_path_to_cert.crt')
}
}
// ...
});
export default defineNuxtConfig({
// ...
devServer: {
port: 443,
https: {
key: 'correct_path_to_key.pem',
cert: 'correct_path_to_cert.crt'
}
},
// ...
});
在“ start”:下面的定义中,
命令替换..
.。
//...
import https, { Server } from 'node:https';
//...
const cert = process.env.NITRO_SSL_CERT;
const key = process.env.NITRO_SSL_KEY;
const nitroApp = useNitroApp();
const server = cert && key ? new Server({ key, cert }, toNodeListener(nitroApp.h3App)) : new Server$1(toNodeListener(nitroApp.h3App));
如果仅将键和证书的文件名和路径传递给https.server(),则在我的安装上出现以下错误结果。
"scripts": {
"dev": "nuxt dev --host",
"build": "nuxt build",
"start": "NITRO_SSL_CERT=$(cat correct_path_to_key.pem) NITRO_SSL_KEY=$(cat correct_path_to_cert.crt) PORT=443 HOST=0.0.0.0 node .output/server/index.mjs"
},
这个错误表明未检索键和证书,并且它们没有有效的