Использование хранилища сертификатов Microsoft Windows в node.js - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь создать узел https сервера. Идея состоит в том, что сервер получит отпечаток сертификата в хранилище, извлечет его из хранилища и использует для соединения SSL / TLS. Я сделал примеры для самозаверяющих сертификатов, и это работало нормально. У меня есть код, чтобы просмотреть хранилище сертификатов и найти правильный сертификат на основе его отпечатка

Код, который у меня есть, приведен ниже.

const ca = require('win-ca');
const forge = require('node-forge');
const pki = forge.pki;
const ssh = forge.ssh;

const thumbprint = process.env.THUMBPRINT; 
...

for (let cert of ca.all()) {
        console.log(forge.pki.certificateToPem(cert));
        console.log('  -----------  \r');
        const md = forge.md.sha1.create();

md.update(forge.asn1.toDer(forge.pki.certificateToAsn1(cert)).getBytes());
            const hex = md.digest().toHex();
            console.log(hex);
        console.log('\r');
        if (thumbprint === hex) {
            foundCert = cert;
            console.log('found\r');
            break;
        }


    }
    console.log('**********************');
    console.log('\r');

    //}
    cnt++;
}

if (foundCert) {
    console.log(forge.pki.certificateToPem(foundCert));

    const pm = forge.pki.certificateToPem(foundCert);
    console.log(foundCert);
}

В Windows ASP.NET Core нужен только сертификат для https. Для node.js все примеры используют закрытый ключ. У меня нет закрытого ключа, но у меня есть доступ к хранилищу сертификатов машины. Могу ли я использовать сертификат из магазина без закрытого ключа? Кажется, мне не хватает части.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...