Node.js天蓝色Keyvault证书

时间:2018-12-03 14:28:59

标签: node.js typescript certificate azure-keyvault

我从天蓝色钥匙库中获取了证书:

const certificate = await keyVaultClient.getCertificate(this.keyVaultUri, certificateName, '');

我拿到了证书……第一件事:)

但是在我找不到如何在https请求的标头中设置证书之后。

我尝试了不同的方法,但没有成功。

有人知道我怎么能做到这一点。完成测试以下。

var options = {
    hostname: 'url.domain.com',
    port: 443,
    path: '/method1',
    method: 'GET',
    agent: false,
    rejectUnauthorized: false,
    strictSSL: false,
    //pfx: certificate.cer.toString('utf8'),
    //pfx: certificate.cer.toString('base64'),
    pfx: certificate,
    passphrase: 'passphrase'

  };

const req = https.request(options, (res: any) => { });

请注意,如果我在驱动器上使用证书,则该证书有效:

pfx: fs.readFileSync(__dirname + '/my.pfx'),

预先感谢

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

首先要获取证书,我已经使用方法“ getSercret”代替了“ getCertificate”:

yield self.engine.open_spider(self.spider, start_requests) builtins.TypeError: a bytes-like object is required, not 'str'

在标头选项中,我已将秘密传递给base 64格式的缓冲区:

let keyVaultClient = new KeyVault.KeyVaultClient(azureCredential);
 const secret = await keyVaultClient.getSecret(this.keyVaultUri, secretName, '');

您看到密码短语(安全密码的密码)为空。为什么呢实际上,当您在天蓝色的密钥库中上载证书时,必须提及密码。但是keyvault之后不保留密码,而是将其设置为空。

Microsoft知道,这对我来说是个问题。

这里有一篇文章对此进行了解释:https://thuansoldier.net/7462/

关于Mathieu