Node.js nodejs azure密钥库证书
我从azure密钥库获得证书:Node.js nodejs azure密钥库证书,node.js,typescript,certificate,azure-keyvault,Node.js,Typescript,Certificate,Azure Keyvault,我从azure密钥库获得证书: const certificate = await keyVaultClient.getCertificate(this.keyVaultUri, certificateName, ''); 我拿到证书了。。。第一件好事: 但是在我找不到如何在https请求的头中设置证书之后 我尝试过不同的方法,但没有成功 有人知道我如何做到这一点。以下测试已完成 var options = { hostname: 'url.domain.com', port:
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'),
提前谢谢我找到了解决办法
首先,为了获得证书,我使用了“getSercret”方法代替“getCertificate”:
让keyVaultClient=new KeyVault.keyvaultclientazuredential;
const secret=await keyVaultClient.getSecretthis.keyVaultUri,secretName
在header选项中,我已将机密传递到Base64格式的缓冲区中:
var options = {
hostname: 'myurl.ti',
port: 443,
path: '/mySuperMethod',
method: 'GET',
agent: false,
rejectUnauthorized: false,
strictSSL: false,
pfx: new Buffer(secret.value, 'base64'),
passphrase: ''
};
您会看到用于保护密码的密码短语password为空。为什么?事实上,在azure keyvault中上载证书时,必须提及密码。但是在keyvault没有保留密码并且设置为空之后
微软知道这一点,对我来说这是个问题
这里有一篇文章解释:
问候马修