Поэтому я пытаюсь создать скрипт в Tampermonkey (JavaScript) для отправки данных на сервер node.js. Для тех, кто не знает, что такое Tampermonkey, это в основном расширение для запуска JavaScript сценариев на веб-сайтах для добавления материала (например, наложение на игру .io). Однако наряду с этим я пытаюсь отправить данные с сервера node.js другому клиенту на другом компьютере (не проблема). Моя проблема возникает, когда я прекращаю размещать сервер node.js на локальном хосте, а не на адресе компьютера (чтобы он мог связываться с клиентом на компьютере № 2). Вот мой код для сервера
const app = require('express')();
const https = require('https');
const fs = require('fs');
const httpsServer = https.createServer({
key: fs.readFileSync('./server.key'),
cert: fs.readFileSync('./server.crt')
});
const port = 4000;
httpsServer.listen(port, "192.168.1.38", function () {
console.log('LISTENING');
});
const ioServer = require( "socket.io" );
const io = new ioServer();
io.attach( httpsServer );
io.on( "connection", function( socket ) {
console.log('client connected');
});
Код для клиента Tampermonkey:
// ==UserScript==
// @name testscript
// @namespace http://tampermonkey.net/
// @version 1
// @description try to take over the world!
// @author HueHanaejistla
// @match *://diep.io/#*
// @grant none
// @require https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.5/socket.io.min.js
// ==/UserScript==
var socket = io.connect('https://192.168.1.38:4000');;
function socketThing() {
socket.emit('test', {"test": "data"});
}
setInterval(socketThing, 500);
(это всего лишь тестовый сценарий, поэтому он на самом деле не делает ничего полезного)
Когда скрипт выполняется, он показывает это в консоли:
GET https://192.168.1.38:4000/socket.io/?EIO=3&transport=polling&t=M_5NBeo net::ERR_CERT_COMMON_NAME_INVALID
Я испробовал множество решений, таких как Как создать самозаверяющий сертификат для localhost? и Как создать самозаверяющий сертификат с OpenSSL и многие другие, но они не работают. Я не уверен, стоит ли мне создавать самозаверяющий сертификат для localhost, а затем просто изменить его на IP-адрес моего компьютера или мне нужно создать что-то совершенно другое.
В настоящее время я пытался: - создать сертификат с общим именем как 192.168.1.38 - создание сертификата со всем как 192.168.1.38 - создание сертификата с 192.168.1.38 и https://192.168.1.38 в качестве альтернативных IP-адресов