【发布时间】:2016-04-25 10:26:13
【问题描述】:
我有以下非常基本的 Node.js 服务器:
"use strict";
const http = require("http");
const https = require("https");
const fs = require("fs");
http.createServer((req, res) => {
console.log("regular works");
res.end("Regular response");
}).listen(3000);
https.createServer({
key: fs.readFileSync("/etc/letsencrypt/live/domain.com/privkey.pem"),
cert: fs.readFileSync("/etc/letsencrypt/live/domain.com/cert.pem")
}, (req, res) => {
console.log("secure works");
res.end("Secure response");
}).listen(3001);
我以sudo node filename.js 运行它,只是因为/etc/letsencrypt/live 中的文件是root 专用的。我稍后会正确执行此操作,仅用于测试。
运行时,我可以访问 3000 端口就好了。服务器控制台打印regular works,浏览器显示Regular response。但是,端口 3001 返回一个空响应,并且没有消息打印到服务器。
LetsEncrypt 文件是使用./letsencrypt-auto certonly --standalone -d domain.com --email email@gmail.com --agree-tos 生成的,并且显示为有效。
为了获得预期的结果,我缺少什么?
【问题讨论】:
-
同时检查响应头。
-
@Gothdo 不幸的是,
server.setSecure不再是一个函数,并且 Express 指南也不起作用 - 给了我相同的结果。
标签: node.js