【发布时间】:2021-09-24 20:44:22
【问题描述】:
我有一个在 3001 端口上成功运行的 HTTP nodejs/socketio 服务器。我正在尝试从使用 certbot 加密的 SSL 网站访问服务器(让我们加密)。
当我访问https//:example.com/index.html 时,我看到 404 错误:
获取https://www.example.com:8000/socket.io/socket.io.js net::ERR_ABORTED 404(未找到)
我一直在阅读有关使用 mod_proxy here 和 here 配置 apache 的信息。但是,根据nodejs documentation,所需要的只是我拥有的 pem 文件。
我觉得我在追自己的尾巴,我需要帮助。我花了将近一周的时间进行研究并尝试不同的方法。我回到了第一广场。有人运行 https 服务器并通过 SSL 网站成功访问它吗?以下是所有相关代码。
server.js
const express = require('express');
const app = express();
const https = require('https');
const fs = require('fs');
// This line is from the Node.js HTTPS documentation.
var options = {
key: fs.readFileSync('../ssl/privkey.pem'),//etc/letsencrypt/
cert: fs.readFileSync('../ssl/cert.pem')
};
const sslserver = https.createServer(options,app);
//establish connection
io.on('connection', (socket) => {
//requests
});
//listening for https
sslserver.listen(8000, () => {
console.log('listening on *: 8000');
});
index.html
<!DOCTYPE html>
<html>
<head>
<title>My Web App </title>
<meta charset="utf-8">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
<meta name="color-scheme" content="light dark">
</head>
<body >
<p>Welcome to web app</p>
<p>login now</p>
</body>
</html>
<!--SCRIPTS-->
<script src="cordova.js"></script>
<script src="https://www.example.com:8000/socket.io/socket.io.js"></script>
<script type="text/javascript">
var socket = io.connect('https://www.example.com:8000', {'multiplex': false});
</script>
【问题讨论】:
标签: node.js https socket.io http-status-code-403