In questo tutorial vedremo come leggere i dati contenuti in un file CSR con Node.js.

Possiamo usare il modulo node-forge in questo modo.

'use strict';

const forge = require('node-forge');
const validator = require('validator');

class CSR {
    static getCSRAttributes(crt) {
        if(validator.isEmpty(crt)) {
            return [];
        }
        const cert = forge.pki.certificationRequestFromPem(crt);
        return cert.subject.attributes;
    }
}

module.exports = CSR;

Il metodo del modulo node-forge restituisce un array di oggetti che corrispondono agli attributi contenuti nel file CSR, come ad esempio il countryName, il commonName e l'attributo emailAddress. Ciascun oggetto ha tra le sue proprietà name (ad esempio emailAddress) e value, che corrisponde al valore dell'attributo (ad esempio gabriele@gabrieleromanato.com in questo caso).

crt è la stringa testuale del file CSR, quindi questo metodo può essere usato sia prendendo l'input da un campo textarea di un form sia tramite upload del file e sua successiva lettura come stringa.

L'array restituito contiene solo gli attributi che sono stati specificati al momento della creazione del file CSR. Quelli che sono stati omessi non sono presenti in questo array.