Skip to content

Instantly share code, notes, and snippets.

@gmiroshnykov
Created June 3, 2011 15:34
Show Gist options
  • Save gmiroshnykov/1006542 to your computer and use it in GitHub Desktop.
Save gmiroshnykov/1006542 to your computer and use it in GitHub Desktop.
Node.js HTTPS client bug
var http = require('http');
var server = http.createServer(function(req, res) {
req.on('end', function() {
var code = 204;
console.log('Sending status code: ' + code);
res.writeHead(code);
res.end();
});
});
var port = 8080;
console.log('Listening on port ' + port);
server.listen(port, function() {
var http = require('http');
var options = {
method: 'GET',
host: '127.0.0.1',
port: port,
path: '/'
};
var req = http.request(options, function(res) {
console.log('Received status code: ' + res.statusCode);
console.log('Now you should see "DONE":');
res.on('end', function() {
console.log('DONE');
});
});
req.end();
});
var fs = require('fs');
var https = require('https');
var options = {
key:
'-----BEGIN RSA PRIVATE KEY-----\n' +
'MIICXAIBAAKBgQCuaklWY5u63urCzgjbimiMlCCBKzjr7B0ndaechdueQZ2gql+t\n' +
'HuNKZx8w8NltvD5i3sGD408dG+0FkfmKDa4Lp5C56/MtsYvsOH4A7rg9fHCGPLAg\n' +
'3uTq5HoN/DC5kvgXbAV/dvHxEUuGHAEExewlMENs+3eH9KkoBoAadE8IiQIDAQAB\n' +
'AoGASZ9z9ZN2WRtf3Xs7IfD60Nx2HBAypuO0KsPvTJL0cYkhEIDagilXqEB/WhlQ\n' +
'rpGXhASjixiYfKEdHAzSWQQNQwsLL6BlVFgUJJMImYAoPUWASqKpOffLzw6fh+FJ\n' +
'MUQq6aNWKnFg0jhdXiQ0RB+gUBhePtlb7qdcbt9accxyYAECQQDnMAcavv4937Nt\n' +
'8/msXt373iCESrn9YOlnSPPKLWp/LODBupybZFIUDIYxJMWCtLCE9gJaeSEZ78wm\n' +
'sQMvOCXJAkEAwSJp3QDDic23BaRqYUcvZyCvIcflBUsWHwmCbHzYNSSp376xCfDK\n' +
'I3M0nPULZ5lT3fSDIwp3/8j+7hW0vpwswQJBAMo/TOfMEHUmnzzghBqUf5RY9Y9m\n' +
'JCGSx32Q552Gb7VEGHfCfkC+2cMqVbbmWVeIJSicYuCtORUMoEd08bk8YGkCQC19\n' +
'+quo+2YhQ6Qbl0c0qlDDXR065ZI6nopPBh6hxZe2/CCM3Uy3IBX7lAAIpFgRwLR+\n' +
'XMlLNPrWEF5qVHm1dcECQBKK5oe7CVa4BYCWAk9wcnsJ2K4/necVXu+PxBXKd6uY\n' +
'Eg4KTIPkTsCLo1tsPTYxazU5bsmjoEwHS1pZ6++Frm8=\n' +
'-----END RSA PRIVATE KEY-----\n',
cert:
'-----BEGIN CERTIFICATE-----\n' +
'MIICiTCCAfICCQDj1NZMYCVghTANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC\n' +
'VUExFzAVBgNVBAgTDkx2aXZza2EgT2JsYXN0MQ0wCwYDVQQHEwRMdml2MQ8wDQYD\n' +
'VQQKEwZMb2hpa2ExDTALBgNVBAsTBExhYnMxETAPBgNVBAMTCEFsZXggS290MR4w\n' +
'HAYJKoZIhvcNAQkBFg9va290QGxvaGlrYS5jb20wHhcNMTEwMzIzMTIwNzE2WhcN\n' +
'MTEwNDIyMTIwNzE2WjCBiDELMAkGA1UEBhMCVUExFzAVBgNVBAgTDkx2aXZza2Eg\n' +
'T2JsYXN0MQ0wCwYDVQQHEwRMdml2MQ8wDQYDVQQKEwZMb2hpa2ExDTALBgNVBAsT\n' +
'BExhYnMxETAPBgNVBAMTCEFsZXggS290MR4wHAYJKoZIhvcNAQkBFg9va290QGxv\n' +
'aGlrYS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK5qSVZjm7re6sLO\n' +
'CNuKaIyUIIErOOvsHSd1p5yF255BnaCqX60e40pnHzDw2W28PmLewYPjTx0b7QWR\n' +
'+YoNrgunkLnr8y2xi+w4fgDuuD18cIY8sCDe5Orkeg38MLmS+BdsBX928fERS4Yc\n' +
'AQTF7CUwQ2z7d4f0qSgGgBp0TwiJAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAXqCX\n' +
'TmZdsU/unlKtrdLgEWOUld1QPQbwRnjYGso2sPYZu8hzoRLsDxqrgD9CjUsqz+3Q\n' +
'pj4ycbwr/Z8X5hGsy1YQr3u6EBou+IRcYdrV+mGIf8UlJtAbBO9tTNe++AXimEfW\n' +
'bhfIESPojkRrYBvIaPut88ASjbHrKM00AIKzmqM=\n' +
'-----END CERTIFICATE-----\n'
};
var server = https.createServer(options, function(req, res) {
req.on('end', function() {
var code = 204;
console.log('Sending status code: ' + code);
res.writeHead(code);
res.end();
});
});
var port = 8443;
console.log('Listening on port ' + port);
server.listen(port, function() {
var options = {
method: 'GET',
host: '127.0.0.1',
port: port,
path: '/'
};
var req = https.request(options, function(res) {
console.log('Received status code: ' + res.statusCode);
console.log('Now you should see "DONE":');
res.on('end', function() {
console.log('DONE');
});
});
req.end();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment