在node.js中使用Microsoft Windows证书存储

时间:2018-11-16 15:25:17

标签: node.js windows ssl https ssl-certificate

我正在尝试创建节点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,所有示例都使用私钥。我没有私钥,但是可以访问机器的证书存储。我可以在没有私钥的情况下使用商店中的证书吗?我似乎缺少了一块。

谢谢

0 个答案:

没有答案