You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Azure JavaScript SDK在Azure Key Vault中创建自签名证书

使用Azure JavaScript SDK在Azure Key Vault中创建自签名证书

前置依赖

首先安装所需的Azure SDK包:

npm install @azure/keyvault-certificates @azure/identity

确保你的服务主体(或其他身份)拥有Azure Key Vault的CertificatePermissions权限(至少包含create权限),并且已配置好身份验证所需的凭据(如客户端ID、客户端密钥、租户ID)。

代码示例

以下代码实现与你提供的PowerShell脚本等效的自签名证书创建逻辑:

const { CertificateClient, DefaultCertificatePolicy } = require("@azure/keyvault-certificates");
const { ClientSecretCredential } = require("@azure/identity");

// 配置参数
const tenantId = "<你的租户ID>";
const clientId = "<你的客户端ID>";
const clientSecret = "<你的客户端密钥>";
const vaultUrl = "https://<你的Key Vault名称>.vault.azure.net/";
const certName = "<证书名称>"; // 对应PowerShell中的$certname

// 创建身份凭据
const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

// 创建Key Vault证书客户端
const client = new CertificateClient(vaultUrl, credential);

// 构建自签名证书策略,匹配PowerShell参数
const certificatePolicy = DefaultCertificatePolicy;
// 替换默认策略中的配置,对齐PowerShell设置
certificatePolicy.subject = `CN=${certName}`;
certificatePolicy.keyType = "RSA";
certificatePolicy.keySize = 2048;
certificatePolicy.signatureAlgorithm = "SHA256";
certificatePolicy.exportable = true;
certificatePolicy.keyUsage = ["digitalSignature"]; // 对应PowerShell中的KeySpec Signature

async function createSelfSignedCertificate() {
  try {
    // 启动证书创建操作(异步,需等待完成)
    const poller = await client.beginCreateCertificate(certName, certificatePolicy);
    // 等待操作完成并获取结果
    const certificate = await poller.pollUntilDone();
    console.log(`自签名证书创建完成:${certificate.name}`);
    console.log(`证书ID:${certificate.id}`);
  } catch (error) {
    console.error("证书创建失败:", error);
  }
}

// 执行创建操作
createSelfSignedCertificate();

关键参数说明

  • subject: 设置证书的主题名称,对应PowerShell中的Subject "CN=$certname"
  • keyType/keySize: 指定密钥算法为RSA、长度2048,对齐PowerShell的KeyAlgorithm RSA和KeyLength 2048
  • signatureAlgorithm: 设置签名哈希算法为SHA256,对应HashAlgorithm SHA256
  • exportable: 设置为true,对应KeyExportPolicy Exportable
  • keyUsage: 指定digitalSignature,对应KeySpec Signature

注意事项

  • 证书创建是异步操作,必须通过pollUntilDone()等待操作完成
  • 确保身份凭据拥有足够的Key Vault权限,否则会返回权限错误
  • 可根据需求扩展证书策略,比如添加有效期、SAN(主体备用名称)等配置

内容的提问来源于stack exchange,提问作者Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 10:57:45