我从天蓝色钥匙库中获取了证书:
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'),
预先感谢
答案 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