node.js - 无法使 socket.io 在 HTTPS 连接上工作
问题描述
我试图用 https 运行我的节点服务器。我正在使用 express 和 socket.io。
我在控制台“net::ERR_CERT_AUTHORITY_INVALID”中出错
我有自签名 SSL。
该代码在没有 SSL 的情况下运行良好。我不知道我的签名证书是否可以被接受。
请告诉我如何: 1. 接受自签名 SSL 证书。或 2. 帮助我以不同的方式完成这项工作。
节点 v6.16.0 服务器 CentOS
这是我的 https 代码:
//server-side
'use strict';
var https = require('https');
var fs = require('fs');
var path = require('path');
var app = require('express')();
var md5 = require('md5');
var port = process.env.PORT || 3030;
var credentials = {
key: fs.readFileSync('/var/www/httpd-cert/www-root/site.com.key', 'utf8'),
cert: fs.readFileSync('/var/www/httpd-cert/www-root/site.com.crt', 'utf8'),
requestCert: true,
rejectUnauthorized: false
};
var httpsServer = https.createServer(credentials, app);
var io = require('socket.io')(httpsServer);
io.on('connection', function(socket){
console.log('an user connected');
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
});
httpsServer.listen(port, function(){
console.log('listening on *:3030');
});
客户端
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
</head>
<body>
<ul id="messages"></ul>
<form action="">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
<script src="/Assets/js/socket.io.js"></script>
<script type="text/javascript">
$(function () {
var host = 'https://example.com:3030';
var socket = io.connect(host, {secure: true});
socket.on('connect', function(){
socket.on('event', function(data){});
socket.on('disconnect', function(){});
});
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});
});
</script>
</body>
</html>
解决方案
推荐阅读
- c# - C#中的递归泛型类型参数
- groovy - 如何使用 httpbuilder 在 groovy 中正确形成发布请求
- reactjs - Kubernetes(minikube) + React Frontend + .netcore api + 集群 IP 服务 + ingress + net::ERR_NAME_NOT_RESOLVED
- reactjs - 致力于重构一个反应组件以删除导入/无循环
- spring-boot - LemonWebSecurityConfig 自定义
- c - 以亚微秒频率同步线程和测量性能的最佳方法
- sql - Oracle SQL:多个 With 语句
- r - R中的矩阵:要替换的项目数不是替换长度的倍数
- azure - 在任何给定时间点可以存在的有效 Oauth2 JWT 令牌的最大数量是多少?
- python - Selenium 无法获取结果页面上第一张图像的 Alt 属性