Следующий NodeJS просто обрабатывает веб-перехватчик из другого источника. Я протестировал его, он работает на http-порту 80, но для источника требуется https.
Когда я открыл этот порт и запустил этот скрипт на 443, при тестировании его с помощью curl возникает следующая ошибка. Тем не менее, я не думаю, что он должен требовать сертификат, не так ли? Как бы я вообще решил это?
curl: (35) SSL peer handshake failed, the server most likely requires a client certificate to connect
Вот сценарий:
var http = require('https')
var server = http.createServer(function(req, res) {
if (req.method == "POST") {
var str = ''
req.on('data', function(data) {
str += data
})
req.on('end', function() {
var json = JSON.parse(str)
res.end(json.meta.status)
})
}
})
console.log("HTTPS server listening on port 443...")
server.listen(443)
ОБНОВИТЬ:
Вот последний код. Я создал самоподписанный сертификат без парольной фразы. Я иду дальше, но все еще получаю сообщение об ошибке, используя curl с добавленной опцией -k. Я получаю сообщение об ошибке проверки сертификата без -k.
Cannot POST /
var https = require('https')
var fs = require('fs')
var express = require('express');
var options = {
key: fs.readFileSync('./server.key'),
cert: fs.readFileSync('./server.cert')
}
var app = express()
var server = https.createServer(options, app, function(req, res) {
if (req.method == "POST") {
var str = ''
req.on('data', function(data) {
str += data
})
req.on('end', function() {
var json = JSON.parse(str)
res.end(json.meta.status)
})
}
})
console.log("HTTPS server listening on port 443...")
server.listen(443)