Я пытаюсь создать прокси-сервер HTTPS в Node.JS v0.10.24 с использованием самозаверяющего сертификата. Вот код, я использую:Прокси HTTPS с самозаверяющим сертификатом в Node.JS
var https = require('https');
var server = https.createServer({
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
});
server.on('request', function(req, res) {
res.end('hello');
});
server.listen(8080);
Этот сервер корректно загружается и доступна через https://localhost:8080
. Однако, когда я устанавливаю его как прокси-сервер HTTPS (в Mac OS X), сервер выдает connection
событий, но никогда не испускает ни request
, ни error
, что приводит к тому, что соединение будет вешать бесконечно и в конечном итоге заканчивается.
Какой клиент делает запрос? Отправляет ли он 'Content-Length'? Отсутствие «Content-Length» означает, что прокси не знает, когда заканчивается запрос. Некоторые, такие как Flash, будут лежать относительно размера запроса, установив его на что-то вроде 64K. Таким образом, сервер ждет всех 64K, хотя запрос меньше 2K. – jww
Chrome, Firefox и Safari на OS X Moutain Lion. –