Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
script.js 6.52 KiB
// Change this variable if another host is used for CAPIF
const CAPIF_HOSTNAME = 'capifcore';
const express = require('express'),
app = express(),
fs = require('fs'),
shell = require('shelljs'),
folderPath = './Responses/',
bodyParser = require('body-parser'),
path = require('path');
const { exec } = require('child_process');
// Create the folder path in case it doesn't exist
shell.mkdir('-p', folderPath);
// Change the limits according to your response size
app.use(bodyParser.json({limit: '50mb', extended: true}));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
var opensslCommand = ''
if (CAPIF_HOSTNAME.includes(':')){
opensslCommand = `openssl s_client -connect ${CAPIF_HOSTNAME} | openssl x509 -text > ./Responses/cert_server.pem`;
}
else{
opensslCommand = `openssl s_client -connect ${CAPIF_HOSTNAME}:443 | openssl x509 -text > ./Responses/cert_server.pem`;
}
exec(opensslCommand, (error, stdout, stderr) => {
if (error) {
console.error(`Error generating CSR: ${stderr}`);
}
});
fs.writeFileSync('./Responses/client_cert.crt', '');
fs.writeFileSync('./Responses/client_key.key', '');
app.get('/', (req, res) => res.send('Hello, I write data to file. Send them requests!'));
app.post('/generate_csr', (req, res) => {
console.log(req.body);
const csrFilePath = 'Responses/'+req.body.apiProvFuncRole+'_csr.pem';
const privateKeyFilePath = 'Responses/'+req.body.apiProvFuncRole+'_key.key';
const subjectInfo = {
country: 'ES',
state: 'Madrid',
locality: 'Madrid',
organization: 'Telefonica I+D',
organizationalUnit: 'IT Department',
emailAddress: 'admin@example.com',
};
const opensslCommand = `openssl req -newkey rsa:2048 -nodes -keyout ${privateKeyFilePath} -out ${csrFilePath} -subj "/C=${subjectInfo.country}/ST=${subjectInfo.state}/L=${subjectInfo.locality}/O=${subjectInfo.organization}/OU=${subjectInfo.organizationalUnit}/emailAddress=${subjectInfo.emailAddress}"`;
exec(opensslCommand, (error, stdout, stderr) => {
if (error) {
console.error(`Error generating CSR: ${stderr}`);
} else {
console.log('CSR generated successfully:');
fs.readFile(csrFilePath, 'utf8', (readError, csrContent) => {
if (readError) {
console.error(`Error reading CSR: ${readError}`);
res.status(500).send('Error reading CSR');
} else {
console.log('CSR read successfully:');
// Send the CSR content in the response