
Azure Key Vault Certificates SDK for Rust。用于创建、导入和管理证书。 下载地址https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-keyvault-certificates-rust技能概述azure-keyvault-certificates-rust 技能是一个专门用于Rust开发的Azure Key Vault Certificates SDK技能包。它提供了Azure Key Vault证书的客户端库用于安全存储和管理证书。该技能包适用于需要在Rust应用中管理SSL/TLS证书、实现证书生命周期管理的开发者。主要功能证书获取从Key Vault获取证书及其属性证书创建使用策略创建新证书证书导入导入现有的PFX/PEM证书证书删除软删除证书可恢复证书列表列出Key Vault中的所有证书策略管理获取和更新证书策略触发条件在以下情况下应该调用此技能用户需要在Rust应用中管理Azure Key Vault证书需要创建或导入SSL/TLS证书需要实现证书生命周期管理需要获取或更新证书策略证书生命周期操作说明Create创建使用策略生成新证书Import导入导入现有的PFX/PEM证书Get获取检索证书仅公钥Update更新修改证书属性Delete删除软删除可恢复Purge清除永久删除处理过程1. 添加依赖在Cargo.toml中添加依赖cargo add azure_security_keyvault_certificates azure_identity2. 创建客户端使用DeveloperToolsCredential创建CertificateClientuse azure_identity::DeveloperToolsCredential;use azure_security_keyvault_certificates::CertificateClient;let credential DeveloperToolsCredential::new(None)?;let client CertificateClient::new(https://vault-name.vault.azure.net/,credential.clone(),None,)?;3. 获取证书从Key Vault获取证书use azure_core::base64;let certificate client.get_certificate(certificate-name, None).await?.into_model()?;println!(Thumbprint: {:?},certificate.x509_thumbprint.map(base64::encode_url_safe));4. 创建证书使用策略创建新证书use azure_security_keyvault_certificates::models::{CreateCertificateParameters,CertificatePolicy,IssuerParameters,X509CertificateProperties,};let policy CertificatePolicy {issuer_parameters: Some(IssuerParameters {name: Some(Self.into()),..Default::default()}),x509_certificate_properties: Some(X509CertificateProperties {subject: Some(CNexample.com.into()),..Default::default()}),..Default::default()};let params CreateCertificateParameters {certificate_policy: Some(policy),..Default::default()};let operation client.create_certificate(cert-name, params.try_into()?, None).await?;输入要求使用此技能时用户需要提供Key Vault URLKey Vault的URL地址身份认证凭据DeveloperToolsCredential或其他Azure凭据证书名称要操作的证书名称证书策略创建证书时需要的策略配置输出说明技能将提供完整的Rust代码示例包含证书CRUD操作的实现策略配置示例创建证书的策略配置代码配置指南环境变量和连接配置的详细说明最佳实践建议关于证书管理的安全建议使用示例示例1导入证书use azure_security_keyvault_certificates::models::ImportCertificateParameters;let params ImportCertificateParameters {base64_encoded_certificate: Some(base64_cert_data),password: Some(optional-password.into()),..Default::default()};let certificate client.import_certificate(cert-name, params.try_into()?, None).await?.into_model()?;示例2列出证书use azure_security_keyvault_certificates::ResourceExt;use futures::TryStreamExt;let mut pager client.list_certificate_properties(None)?.into_stream();while let Some(cert) pager.try_next().await? {let name cert.resource_id()?.name;println!(Certificate: {}, name);}示例3获取和更新证书策略// 获取策略let policy client.get_certificate_policy(certificate-name, None).await?.into_model()?;// 更新策略use azure_security_keyvault_certificates::models::UpdateCertificatePolicyParameters;let params UpdateCertificatePolicyParameters {..Default::default()};client.update_certificate_policy(cert-name, params.try_into()?, None).await?;最佳实践使用Entra ID认证开发环境使用DeveloperToolsCredential使用托管证书支持的颁发者可自动续订设置适当的有效期平衡安全性和维护成本使用证书策略定义续订和密钥属性监控过期为即将过期的证书设置警报启用软删除生产环境保管库必须启用RBAC权限需要分配以下Key Vault角色Key Vault Certificates Officer证书的完整CRUD权限Key Vault Reader读取证书元数据参考链接资源链接API参考文档https://docs.rs/azure_security_keyvault_certificates源代码GitHubcrates.iohttps://crates.io/crates/azure_security_keyvault_certificates注意事项此技能仅适用于任务明确匹配上述范围的情况输出不应替代环境特定的验证、测试或专家审查如果缺少必需的输入、权限、安全边界或成功标准请停止并请求澄清