Example #1
0
File: ca.js Project: lolo88l/oms
	configDao.findOne({name: 'certificationAuthority'}, function (err, ca) {
		if (ca) {
			var parameters = {
				tmp_directory:	config.serviceTmpDir,
				password:		ca.private_key.passphrase,
				agent_id:		agentId,
				validity:		ca.crt_validity,
				cert_filename:	ca.certificate.filename,
				key_filename:	ca.private_key.filename
			};
			dbCommander.command('init-agent', parameters, function(result) {
				if (result.code == 0) {
					var split = result.data.split('-----END RSA PRIVATE KEY-----');
					var key = split[0] + '-----END RSA PRIVATE KEY-----';
					var cert = split[1];
					installsDao.update(agentId, {private_key: key, certificate: cert}, function (err, result) {
						if (!result || result !== 1) {
							if (callback) callback(new Error('[CA] Unable to update agent in DB'));
						} else {
							if (callback) callback(null);
						}
					});
				} else {
					if (callback) callback(new Error('[CA] Unable to create agent credentials: code = ' + result.code + ', output = ' + result.data));
				}
			});
		} else {
			if (callback) callback(new Error('[CA] No configuration found in database for the certification authority'));
		}
	});
Example #2
0
var createMaintenanceUserKeys = function (callback) {
	// Create ssh keys if not exists
	if (!config.maintenancePrivateKey) {
		// Key filename
		var key = config.serverTmpDir + 'key';
		// Execute command
		dbCommander.command('create-ssh-keys', {filename: key}, function (result) {
			if (result.code !== 0) {
				throw new Error('[Bootstrap] Unable to create ssh keys for maintenance user');
			}
			var data = {
				'config.maintenanceUser':			'******',
				'config.maintenancePublicKey':		fs.readFileSync(key + '.pub').toString(),
				'config.maintenancePrivateKey':		fs.readFileSync(key).toString()
			};
			serversDao.update(config.serverId, data, function () {
				// Remove key files
				fs.unlinkSync(key + '.pub');
				fs.unlinkSync(key);
				// Reload config to add keys
				config.reload(function (err) {
					// Callback
					logger.info('[Bootstrap] Maintenance user ready to connect : keys generated');
					if (callback) callback(err);
				});
			});
		});
	} else {
		if (callback) callback(null);
	}
};
Example #3
0
File: ca.js Project: lolo88l/oms
			configDao.findOne({name: 'certificationAuthority'}, function (err, ca) {
				if (ca) {
					var parameters = {
						tmp_directory:	config.serviceTmpDir,
						password:		ca.private_key.passphrase,
						validity:		ca.crt_validity,
						cert_filename:	ca.certificate.filename,
						key_filename:	ca.private_key.filename,
						index:			index
					};
					dbCommander.command('generate-crl', parameters, function (result) {
						configDao.update(ca._id, {'crl.contents' : result.data, 'crl.last_generation' : new Date().getTime()}, function (err, result) {
							if (!result || result !== 1) {
								if (callback) callback(new Error('[CA] Unable to update CRL in DB'));
							} else {
								logger.info('[CA] CRL generated: ' + result.data);
								if (callback) callback(null);
							}
						});
					});
				} else {
					if (callback) callback(new Error('[CA] No configuration found in database for the certification authority'));
				}
			});