Skip to content

Commit b08bc99

Browse files
author
xval
committed
Merge pull request #148 from telefonicaid/target_cert
New header for self-signed certificate. Close #147
2 parents 5d77886 + 6d79ec2 commit b08bc99

8 files changed

+467
-8
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ report
88
*.key
99
*.key.org
1010
*.rdb
11+
test/acceptance/config.js

lib/eventWorker.js

+9-3
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,15 @@ function doJob(task, callback) {
252252

253253
if (options.protocol === 'https:') {
254254
httpModule = https;
255-
options.rejectUnauthorized = !config.trustAllServers;
256-
if(!config.trustAllServers){
257-
options.ca = cas;
255+
//This header takes precedence over config
256+
if (task.headers[MG.HEAD_RELAYER_SERVER_CERT]) {
257+
options.ca = new Buffer(task.headers[MG.HEAD_RELAYER_SERVER_CERT], 'base64');
258+
options.rejectUnathorized = true;
259+
} else {
260+
options.rejectUnauthorized = !config.trustAllServers;
261+
if (!config.trustAllServers) {
262+
options.ca = cas;
263+
}
258264
}
259265
} else { // assume plain http
260266
httpModule = http;

lib/myGlobals.js

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ exports.C = {
3232
'HEAD_RELAYER_ENCODING':'x-relayer-encoding',
3333
'HEAD_RELAYER_PROXY':'x-relayer-proxy',
3434
'HEAD_RELAYER_PROTOCOL':'x-relayer-protocol', //http, https
35+
'HEAD_RELAYER_SERVER_CERT':'x-relayer-server-cert', //target certificate
3536
'ACEPTS_ENCODINGS':['base64'],
3637
'PARAM_DBHOST':'dbhost',
3738
'PARAM_DBPORT':'dbport',

test/e2e/advancedServer.js

+10-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ var fs = require('fs');
66
var config = require('./config.js');
77

88
var options = {
9-
key: fs.readFileSync(path.resolve(__dirname, '../../utils/server.key')),
10-
cert: fs.readFileSync(path.resolve(__dirname, '../../utils/server.crt'))
9+
key: fs.readFileSync(path.resolve(__dirname, './serverCert.key')),
10+
cert: fs.readFileSync(path.resolve(__dirname, './serverCert.crt')),
11+
//rejectUnauthorized: false
1112
};
1213

14+
// Verbose MODE
15+
var vm = false;
16+
1317
var serverListener = function(portProtocol, responseParameters, connectedCallback, dataCallback) {
1418

1519

@@ -19,8 +23,8 @@ var serverListener = function(portProtocol, responseParameters, connectedCallbac
1923
if(protocol === 'http'){
2024
srv = http.createServer(requestHandler);
2125
} else {
22-
srv = https.createServer(options, requestHandler);
23-
}
26+
srv = https.createServer(options, requestHandler);
27+
}
2428

2529
srv.listen(portProtocol.port, connectedCallback);
2630

@@ -39,6 +43,8 @@ var serverListener = function(portProtocol, responseParameters, connectedCallbac
3943
response.statusCode = responseParameters.statusCode || 200;
4044
response.headers = responseParameters.headers || {};
4145

46+
if(vm){console.log(response);}
47+
4248
req.on('data', function(chunk) {
4349
content += chunk;
4450
});

test/e2e/protocolTest.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; //Accept self signed certs
3131

3232
function _validScenario(data){
3333

34-
it(data.name, function(done){
34+
it(data.name + ' #FPT', function(done){
3535
var agent = superagent.agent();
3636
var id;
3737

test/e2e/serverCert.crt

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICKTCCAZICCQD5MEvACMuM0DANBgkqhkiG9w0BAQUFADBZMQswCQYDVQQGEwJB
3+
VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
4+
cyBQdHkgTHRkMRIwEAYDVQQDDAlsb2NhbGhvc3QwHhcNMTMwODIwMTEwNzQzWhcN
5+
MTQwODIwMTEwNzQzWjBZMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0
6+
ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRIwEAYDVQQDDAls
7+
b2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM40GEaTD/BDqfmv
8+
OEGZaoRe2ayc69QISXVBtfMSpiz1gMCgkmQwbiZ8/e6X6IilmdhpnJza5E/Gk3lj
9+
fmaGfxGcKlPre1sII3S0L2G8TjH2gcMcLmrriA8yFx9rSkDughBI6Bh2ELs7TCSH
10+
aYAhDVCM4DRFttS/1pLJlkBOnxejAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAkqeG
11+
qbw+V1CK363k7sFaRX3PJlgeg9NbIE10HJsmTqB8juqii91PQFDEZtc9jvTtLUSs
12+
jGvrwHSBSbGfS6tMv2PtsgG88eosDTKo0d3jZvADUYUgd2OAZif4bBKv1L8kUTOM
13+
X7QqPQBfe2do8XGNCuzFZFkdlxWuUoNWzcmy0hE=
14+
-----END CERTIFICATE-----

test/e2e/serverCert.key

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIICXQIBAAKBgQDONBhGkw/wQ6n5rzhBmWqEXtmsnOvUCEl1QbXzEqYs9YDAoJJk
3+
MG4mfP3ul+iIpZnYaZyc2uRPxpN5Y35mhn8RnCpT63tbCCN0tC9hvE4x9oHDHC5q
4+
64gPMhcfa0pA7oIQSOgYdhC7O0wkh2mAIQ1QjOA0RbbUv9aSyZZATp8XowIDAQAB
5+
AoGBAKvQTnXnrb0ltCh+rmJCgbWADuG78ug+a27PbNr3rA0EFt7qLHBcxjs9pJw8
6+
aR4K1hCzlzI/VUN/k3vuwfCNmqvDtq+OFhx5B3oyegBUTxMojvWNPMH3I3X+eToA
7+
dxW4cssI9yCr8vtJc6Qjk3im17HUYgC0qaVkZmiX9AOY9PYZAkEA6xf+S+ud7Eg/
8+
Hn4O8+9VtSnn99tFiipiWxIxxpvXydd/rNFiqV+VDYmz8Ae1TqxOmvymIK415L8F
9+
zFDioWLrDwJBAOCKZ0P1a3TdHJHOK3jU0GVuYuDrLHNM5WH5/SXpV962q/0w/2pi
10+
pZCfD6HXxUA8p0JNvmQRRQv4cN+aJ+7f2i0CQAmI5ZVqrvMAUx8Hec/G6zD3zCKv
11+
T/i0k1yiNkaZ13ymMtVtgJTh/YeZCCU6Cs5wCpgamxpENodaf/+zYB2vh10CQGpJ
12+
WWRT0Y+58oIaI33IzvSUcf2hlKLnbVUZbnj5oXxs37Cz9tM26sQwZsfnSRmFHG9I
13+
Oa1Id3SZH2TYpbpu/+kCQQC7qw6xYO0Kg6VK7a02h5zVQ+SeCHv3GU6B3zRr2TSf
14+
cpkOLE7XdHp4apf2sZse9N5ilLElos2iTv5wrzf6tBUy
15+
-----END RSA PRIVATE KEY-----

0 commit comments

Comments
 (0)