Недоходят POST запроса на сервер с openssl сертификатом, [1)net::ERR_CERT_AUTHORITY_INVALID 2)net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH]

С сайта отправляется post запрос на сервер, который должен считывать тело запроса и записывать его в файл с логами. На время теста хостингом сайта служит github, в роли сервера выступает рабочий комп с node express(ом). fetch джаваскрипта выглядит следующим образом:

function callAPI(){
  fetch('https://тут.внешний.IP.адресс:3000', { // перенаправление с внешнего IP адреса на рабочий комп
    method: "POST",
    mode: 'no-cors', // корс отключен
    headers: {
      "Content-Type": "application/x-www-form-urlencoded"
    },
    body: `${searchInput.value}`, // тело с передаваемым значением
  });
}

сервер:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const https = require('https');
var fs = require('fs');

app.use(express.static('public'));
app.use(express.json());
app.use(bodyParser.json({ limit: '100mb' }));
app.use(bodyParser.urlencoded({ limit: '100mb', extended: false }));

app.post('/',bodyParser.json() ,(request, response) => {
    console.log((JSON.stringify(request.body)));
    function logTime(){
      return  `${JSON.stringify(request.body)}`;
    }
    fs.appendFile('Statistics.log',new Date() + logTime()+'\n', function(){});
    response.json({
      status: 'success',
  });
});

https.createServer({
//rejectUnauthorized: false,
  key: fs.readFileSync('./key.pem'), // файл приватного ключа
  cert: fs.readFileSync('./cert.pem'), // файл сертификата
  passphrase: 'кодовое_слово'
},app).listen(3000, '192.168.0.131',()=> console.log('Listening 3000')); // прослушка IP адреса 
компа, также указывал 0.0.0.0

В папке с файлом-сервером лежат сгенерированный openssl(ем) сертификат (cert.pem) и ключ (key.pem). При запуске сервера и попытке отправить post запрос в консоли выводится ошибка net::ERR_CERT_AUTHORITY_INVALID.

Если в https сервере поставить раскомментировать параметр rejectUnauthorized: false и закомментить пути к сертификату, ключу и кодовое слово, то в консоль выводится ошибка ERR_SSL_VERSION_OR_CIPHER_MISMATCH. (включал TLS 1.3, отключал QUIC, чистил кэш, отключал брэндмауэр - не помогло).

https.createServer({
  rejectUnauthorized: false,
//key: fs.readFileSync('./key.pem'),
//cert: fs.readFileSync('./cert.pem'),
//passphrase: 'кодовое_слово'
},app).listen(3000, '192.168.0.131',()=> console.log('Listening 3000'));

До генерации сертификата ругался на SSL протокол: ERR_SSL_PROTOCOL_ERROR

Прошу подсказать, в какую область копать, чтобы разрешить проблему и беспрепятственно отправлять post запросы через fetch или axios.


Ответы (0 шт):