Skip to content

Commit 4d5ec50

Browse files
author
Alex Ivashchenko
committed
Proper self-signed ssl
1 parent 28714b7 commit 4d5ec50

5 files changed

Lines changed: 44 additions & 53 deletions

File tree

test/common.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
var common = module.exports;
1+
var fs = require('fs');
22
var path = require('path');
33

4+
var common = module.exports;
5+
46
var rootDir = path.join(__dirname, '..');
57
common.dir = {
68
lib: path.join(rootDir, '/lib'),
@@ -15,3 +17,7 @@ common.port = 8432;
1517

1618
common.staticPort = 9432;
1719
common.httpsPort = 9443;
20+
21+
// store server cert in common for later reuse, because self-signed
22+
common.httpsServerKey = fs.readFileSync(path.join(__dirname, './fixture/key.pem'));
23+
common.httpsServerCert = fs.readFileSync(path.join(__dirname, './fixture/cert.pem'));

test/fixture/cert.pem

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIB5jCCAZACCQD/wXFVwpLS+jANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJV
2+
MIIBnDCCAUYCCQCgIldFYidw0zANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJV
33
UzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVBhbG8gQWx0bzERMA8GA1UEChMIRm9y
4-
bURhdGExFDASBgNVBAMTC0FsZXggSW5kaWdvMSEwHwYJKoZIhvcNAQkBFhJpYW1A
5-
YWxleGluZGlnby5jb20wHhcNMTUwNjEzMDcxNTQ3WhcNNDIxMDI4MDcxNTQ3WjB6
6-
MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVBhbG8gQWx0bzER
7-
MA8GA1UEChMIRm9ybURhdGExFDASBgNVBAMTC0FsZXggSW5kaWdvMSEwHwYJKoZI
8-
hvcNAQkBFhJpYW1AYWxleGluZGlnby5jb20wXDANBgkqhkiG9w0BAQEFAANLADBI
9-
AkEAswvOBQq8RWt3sOR4z4ak/3mkwaoVSzqiFF2DNXQpVSGyV9kgguotXkmLaI2c
10-
J7qAeVkDlRerDZVQafGazw6djwIDAQABMA0GCSqGSIb3DQEBBQUAA0EAGlVyp9sJ
11-
uV3Axo4FNkGN4BVFMfPShJzvvPZZ7BwNOIwdK5lS6Ah7YgkjnEhc7IwuqHQqzngs
12-
UwyLalyXFRhIbw==
4+
bURhdGExEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0xNTA2MTMxMzA3MTBaFw00MjEw
5+
MjgxMzA3MTBaMFUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTESMBAGA1UEBxMJ
6+
UGFsbyBBbHRvMREwDwYDVQQKEwhGb3JtRGF0YTESMBAGA1UEAxMJbG9jYWxob3N0
7+
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOkE8JJzLQbVEo/vRVRqiwNEbiuEooJA
8+
099h1IJLtsPJVphSDBTtE0FLB0YIzT7bG44Drm/975XEZjoQ9TmYbTMCAwEAATAN
9+
BgkqhkiG9w0BAQUFAANBALSDmvKXb4cE622OdSRrDsnr8xUosetsAGSlGauWBKgc
10+
DNQhP6wSQHTAJT8wiVgSPYwnhcnzkZlwzdfMHMtzFIc=
1311
-----END CERTIFICATE-----

test/fixture/key.pem

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
-----BEGIN RSA PRIVATE KEY-----
2-
MIIBOQIBAAJBALMLzgUKvEVrd7DkeM+GpP95pMGqFUs6ohRdgzV0KVUhslfZIILq
3-
LV5Ji2iNnCe6gHlZA5UXqw2VUGnxms8OnY8CAwEAAQJAYf2n96J0gBndG/cvF4U9
4-
cIUG4udPWCjy4+p6ERtOM8Se8zlez4bv+FSO5nRkVBIsuM/hlYeWNi1itqqqbFkq
5-
YQIhAN3vq+tuknOtgt7heQbaY/coMPfdI08eyfE3DsTveRz1AiEAzobkpkU00DiU
6-
mrEGLLHexGRzioYSI0AMUJTMuwtS/fMCIHi5A3p4Vh+odXTJjyzkJNZvvVtGpgtG
7-
wzB784O6g9X1AiAeUzJJs8nAdT5kxG+KqodyQOmyQmNxZ5snTeIN6OjDvwIgVBaJ
8-
FoVTTx4YEg9JOIKkE4qL/V4bPpqSDU+720lKWSw=
2+
MIIBOwIBAAJBAOkE8JJzLQbVEo/vRVRqiwNEbiuEooJA099h1IJLtsPJVphSDBTt
3+
E0FLB0YIzT7bG44Drm/975XEZjoQ9TmYbTMCAwEAAQJBAMzjTAjpfujoBzdKIwLT
4+
38GStPBM4nt3NxTOt4WNv3kr7QBsUKEB6I3nQfNw5ZmLs7cee9FebaAZXDwoPHvs
5+
p0ECIQD5HgrPnK0LkmfOiEasZ9kGBbaKyEbd84QDTvqwi3izoQIhAO91CgSifv3F
6+
0hitLxgZd4MRYhcos9WyjRkpTojKyDBTAiBf4nFU0cBFSPfNpeRV7a65w68sIcQt
7+
H9K7F0Ykd7pgoQIhAOkKiZ5rGpYVgNvdJ/kXR9V6BHGvfh1acLFtHu5IE73bAiAs
8+
e7X+r8KxH0KmFZU8UJ/snHLbfuotB0ZyYAw6SlTjyQ==
99
-----END RSA PRIVATE KEY-----

test/integration/test-submit-https.js

Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,23 @@ var common = require('../common');
22
var assert = common.assert;
33
var FormData = require(common.dir.lib + '/form_data');
44

5-
// testing default https port
6-
7-
// check params as string
8-
testRequest('https://localhost:'+common.httpsPort+'/');
9-
10-
// check params as object
11-
testRequest({protocol: 'https:', hostname: 'localhost', port: common.httpsPort, pathname: '/'});
12-
13-
// --- Santa's little helpers
14-
15-
function testRequest(params)
16-
{
17-
var form;
18-
19-
form = new FormData();
20-
21-
form.submit(params, function(err, res)
22-
{
23-
if (err) {
24-
throw err;
25-
}
26-
27-
assert.strictEqual(res.statusCode, 200);
28-
assert.strictEqual(res.headers['x-success'], 'OK');
29-
30-
// unstuck new streams
31-
res.resume();
32-
});
33-
34-
}
5+
var form = new FormData();
6+
7+
form.submit({
8+
protocol: 'https:',
9+
hostname: 'localhost',
10+
port: common.httpsPort,
11+
pathname: '/',
12+
ca: common.httpsServerCert
13+
}, function(err, res) {
14+
15+
if (err) {
16+
throw err;
17+
}
18+
19+
assert.strictEqual(res.statusCode, 200);
20+
assert.strictEqual(res.headers['x-success'], 'OK');
21+
22+
// unstuck new streams
23+
res.resume();
24+
});

test/static.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,9 @@ if (!fs.existsSync(common.dir.tmp))
1212
fs.mkdirSync(common.dir.tmp);
1313
}
1414

15-
// make it work with self-signed
16-
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
17-
1815
var httpsOptions = {
19-
key: fs.readFileSync(path.join(__dirname, './fixture/key.pem')),
20-
cert: fs.readFileSync(path.join(__dirname, './fixture/cert.pem'))
16+
key: common.httpsServerKey,
17+
cert: common.httpsServerCert
2118
};
2219

2320
module.exports = function(callback) {

0 commit comments

Comments
 (0)