Skip to content

Instantly share code, notes, and snippets.

@Rush
Last active August 29, 2015 14:02
Show Gist options
  • Save Rush/e497cb494d25721155b9 to your computer and use it in GitHub Desktop.
Save Rush/e497cb494d25721155b9 to your computer and use it in GitHub Desktop.
HTTPS connection closed in the middle of request on 0.11.11 and later nodejs/node-v0.x-archive#7733
/*
Issue joyent/node#7733
run this on a remote server and do on your local machine (I have 40ms lag to my server)
you need this image file:
http://x.rushbase.net/da39a3ee5e6b4b0d3255bfef95601890afd80709/codecharm-white.png
wget --no-check-certificate https://yourserver.net:63000/codecharm-white.png
this should yield error on node 0.11.11 and upper and works well o node 0.11.10:
breaking commit found through bisect:
https://github.com/joyent/node/commit/640912d18a63704fd493059a72b19e6367c2fc1c
*/
var http = require('http');
var https = require('https');
var url = require('url');
var path = require('path');
var httpProxy = require('http-proxy');
var proxy = httpProxy.createProxyServer({xfwd: true});
var options = {
key: '-----BEGIN RSA PRIVATE KEY-----\n' +
'MIIEpAIBAAKCAQEA5sW8hM95zG7bGh9+0M4576QTOVwFWIZgWrZuLeHAsxyNHBL0\n' +
'Nv0iLBZ93kSSj3L3Lf6eVCD9BZWDbUehY8xZocRErujA6c47ilPS/NVppK2jjVN+\n' +
'NULIH4h1OOa2qVPYKtxhULiLCelh5FHXIYlQAqBiik9zh+PZnteOBayU9WQGmNgz\n' +
'vFGM71ohkrL1j7eb1vH0mfpgPJo9tK2O9uq0Bx0ly8KkH5zIuh1HuRNarlPtR5sA\n' +
'8JxAtGBydP6kWF5h1UHbKXM283PfHbVprUHRfRoE767XqZOPZRxxqpnAxNS/tjR8\n' +
'zpBGmxKiPwS90y20Bm2yLnV9VycrrWSFqfYdHQIDAQABAoIBAQC97tL48BYLxtV3\n' +
'y6JBUupmLMFRvUX9FSPqpSlLg/losUAGcicjtvVQGfbgX8nMXM/JwD0perkkxmiU\n' +
'IZdYHxFKTdJFrvVPuVhRwintw+weCHeK0sQWK++v3Ey2V1TRSluo8xb5K9nrf3T9\n' +
'SMpqJKyAbOaNdVTd7A7pZ/nQ+7jhuTAZlW1SnjJ2mkOML5UbM7Ncf7X92tfC/KNQ\n' +
'afxW4VHxyNLDN5m9Qjq42Tlela+kFEJr7yosd7OLsH7XoiOnPHV1qYO7zrLxNfJe\n' +
'xyP3RwkbSmAJ8h8oJcZn69gP8URr/KW/B++3pHPkQVQglk+pZRogtpD89JgCUn25\n' +
'PHNukxqBAoGBAP6dMOn4xVvQj/aLjfvDlfM4XIU3vNiEItYhs8z99PwBYfqlAdLd\n' +
'8uNTCLBH6GBeW1zbvKRGz5bZiERTNe+8lPilzVWVd183yRMXWHIzMDBA7FpSJlRV\n' +
'Ci5UiI6ICHR24OsJ+CN+ctPDNpg9wNtRe1ppM6a8+9zqI0tArkfE1FUhAoGBAOgH\n' +
'UlaN7HdW/Vb/l7/WyZK15DkJx057v2WTZYdTV2sN6h1Jrsq7NOx7xNntJmk0x/Ad\n' +
'uKOx99V/h308EWjgwa+IEduiAt0GgRXhWItn9mUWD2YlhcYmOXidyYrBDq3JyZUM\n' +
'Ts7DEc8CV0Fs8okRVq02f7H2Z+oUvDqyYkLV6wx9AoGAc0zfz7R2O0PRTcaYv4As\n' +
'sX2+eB1riWkdFXchox0GCfDeW9DJaKJV0ZfSgXGuy6UvHnfrj0D51Mghqz87V5tA\n' +
'ovECcVVEP3xVtC2IQf7oPZHI9oXpEZuJBr4FMPZtTcBfzlAvbHNgsIDggkTExwy5\n' +
'HZIyb7l5HOtynCtoQNvjg8ECgYEAvIuOjgUf/U3z6akin+IixJQH042tpooKWrku\n' +
'zIudwsF417nTTqxXcj+VE92Q0/bu7aDJNEPe9199MvgH0aip20B/+nCpUQADD0uh\n' +
'zw54+2W0t7WQAhd3phrZ9mWwzunlY7evpnZ/Vy84xlKIt3cebvyVQYDQqjeVSUFB\n' +
'dbwtF2UCgYB/y+osTUFNxDqu7FX8HBlL7F3ZBjjFUs8xpZZuZKWG+7CCcSE/rPdw\n' +
'E5sHwC0OxTWnRaiNaP5TEV/u95p9cZYQNIgrzl1ooU5ZFzl7NX6VnJfQAyA/WeCB\n' +
'3MvNt068tqRoQpL3btfzyn7kGweDdZ0w181Y9Wyfg1Pb4tKWbZrCBw==\n' +
'-----END RSA PRIVATE KEY-----\n',
cert: '-----BEGIN CERTIFICATE-----\n' +
'MIIDXTCCAkWgAwIBAgIJAPv5luejZzgwMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\n' +
'BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\n' +
'aWRnaXRzIFB0eSBMdGQwHhcNMTQwMjAyMjA0OTEwWhcNMTQwMzA0MjA0OTEwWjBF\n' +
'MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\n' +
'ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\n' +
'CgKCAQEA5sW8hM95zG7bGh9+0M4576QTOVwFWIZgWrZuLeHAsxyNHBL0Nv0iLBZ9\n' +
'3kSSj3L3Lf6eVCD9BZWDbUehY8xZocRErujA6c47ilPS/NVppK2jjVN+NULIH4h1\n' +
'OOa2qVPYKtxhULiLCelh5FHXIYlQAqBiik9zh+PZnteOBayU9WQGmNgzvFGM71oh\n' +
'krL1j7eb1vH0mfpgPJo9tK2O9uq0Bx0ly8KkH5zIuh1HuRNarlPtR5sA8JxAtGBy\n' +
'dP6kWF5h1UHbKXM283PfHbVprUHRfRoE767XqZOPZRxxqpnAxNS/tjR8zpBGmxKi\n' +
'PwS90y20Bm2yLnV9VycrrWSFqfYdHQIDAQABo1AwTjAdBgNVHQ4EFgQUMGCMgAHj\n' +
'oN/jOUW1UkgmymubfUIwHwYDVR0jBBgwFoAUMGCMgAHjoN/jOUW1UkgmymubfUIw\n' +
'DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAfPqjVJv21ZTERVzyt/K0\n' +
'9d4cuIJh2pJsknIVq/6g80A1BOyi+V7mwcEG5PPGRyWYNa+RDhW93okjbiqiakVk\n' +
'HKLX8l4yMh67MD7HAsgsZhYXyibgJqfNyUysntD930BN4gzobTV6/L4E8YSnvr/V\n' +
'pnGBheCzRht3nDBSTo0OZkaUEyhw+T1P/MHPEIzPqXrs/9jrDRRHsZgZ4dYJm6Sy\n' +
'F8KWmYVYKO/WnexRh2MsppbbMjrhd1hmpI/XeTaaqfLi5NLKPfCBFfmKHxXB81sK\n' +
'UYukVVhwbAjngarYBzbPBzNTsKXWCNzYDUbblhsvjVfOf8kxsdIUc5ulNNimYjNa\n' +
'5A==\n' +
'-----END CERTIFICATE-----\n'
};
var fs = require('fs');
http.createServer(function(req, res) {
var filename = path.join(__dirname, 'codecharm-white.png');
fs.stat(filename, function(err, st) {
res.statusCode = 200;
res.setHeader('content-length', st.size);
fs.createReadStream(filename).pipe(res);
});
}
).listen(62999);
var handler = function(req, res) {
console.log("Request");
proxy.web(req, res, {target: url.parse('http://localhost:62999')});
};
https.createServer(options, handler).listen(63000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment