Erro “Unable to verify leaf signature” no NodeJS

Recentemente, após instalar uma aplicação NodeJS (MEAN Stack) deparei-me com o erro “Unable to verify leaf signature”. Após alguns despites conclui que a dificuldade encontrada estava relacionada com a cadeia de certificação associada ao certificado SSL utilizado pela aplicação. A minha primeira abordagem foi verificar no servidor NGINX a correta configuração do certificado e devida cadeia, no entanto todas as configurações estavam de acordo com as especificações, desta forma conclui que o a situação estava relacionada com servidor aplicacional (NodeJS).

Para tornar a aplicação funcional executei o seguinte procedimento no servidor aplicacional:

npm install ssl-root-cas

Este pacote NodeJS contem vários certificados intermédios que são “confiáveis” pelo browser mas não pelo NodeJS

var sslRootCAs = require('ssl-root-cas/latest')
sslRootCAs.inject()

Desta forma os certificados em falta serão adicionados.

Para além desta situação foi-me necessário adicionar mais certificados a este modulo pois por defeito os que eu necessitava não se encontravam neste “bundle”, para tal foi ncessário fazer o download dos certificados em falta para tal utilizei o seguinte procedimento:

require('ssl-root-cas/latest')
  .inject()
  .addFile(__dirname + '/certificadointermedioemfalta.crt');