[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-fe7c0e71-7ebd-4e89-a0a3-2c7d031004bc":3,"$f1rP4CbfFNQKAL58LBaWqNcnNMErbDmVvqswMKd_fGug":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"fe7c0e71-7ebd-4e89-a0a3-2c7d031004bc","azure-keyvault-certificates-rust","Azure Key Vault 证书 SDK for Rust。用于创建、导入和管理证书。","cat_coding_devops","mod_coding","sickn33,coding","---\nname: azure-keyvault-certificates-rust\ndescription: Azure Key Vault Certificates SDK for Rust. Use for creating, importing, and managing certificates.\nrisk: unknown\nsource: community\ndate_added: '2026-02-27'\n---\n\n# Azure Key Vault Certificates SDK for Rust\n\nClient library for Azure Key Vault Certificates — secure storage and management of certificates.\n\n## Installation\n\n```sh\ncargo add azure_security_keyvault_certificates azure_identity\n```\n\n## Environment Variables\n\n```bash\nAZURE_KEYVAULT_URL=https:\u002F\u002F\u003Cvault-name>.vault.azure.net\u002F\n```\n\n## Authentication\n\n```rust\nuse azure_identity::DeveloperToolsCredential;\nuse azure_security_keyvault_certificates::CertificateClient;\n\nlet credential = DeveloperToolsCredential::new(None)?;\nlet client = CertificateClient::new(\n    \"https:\u002F\u002F\u003Cvault-name>.vault.azure.net\u002F\",\n    credential.clone(),\n    None,\n)?;\n```\n\n## Core Operations\n\n### Get Certificate\n\n```rust\nuse azure_core::base64;\n\nlet certificate = client\n    .get_certificate(\"certificate-name\", None)\n    .await?\n    .into_model()?;\n\nprintln!(\n    \"Thumbprint: {:?}\",\n    certificate.x509_thumbprint.map(base64::encode_url_safe)\n);\n```\n\n### Create Certificate\n\n```rust\nuse azure_security_keyvault_certificates::models::{\n    CreateCertificateParameters, CertificatePolicy,\n    IssuerParameters, X509CertificateProperties,\n};\n\nlet policy = CertificatePolicy {\n    issuer_parameters: Some(IssuerParameters {\n        name: Some(\"Self\".into()),\n        ..Default::default()\n    }),\n    x509_certificate_properties: Some(X509CertificateProperties {\n        subject: Some(\"CN=example.com\".into()),\n        ..Default::default()\n    }),\n    ..Default::default()\n};\n\nlet params = CreateCertificateParameters {\n    certificate_policy: Some(policy),\n    ..Default::default()\n};\n\nlet operation = client\n    .create_certificate(\"cert-name\", params.try_into()?, None)\n    .await?;\n```\n\n### Import Certificate\n\n```rust\nuse azure_security_keyvault_certificates::models::ImportCertificateParameters;\n\nlet params = ImportCertificateParameters {\n    base64_encoded_certificate: Some(base64_cert_data),\n    password: Some(\"optional-password\".into()),\n    ..Default::default()\n};\n\nlet certificate = client\n    .import_certificate(\"cert-name\", params.try_into()?, None)\n    .await?\n    .into_model()?;\n```\n\n### Delete Certificate\n\n```rust\nclient.delete_certificate(\"certificate-name\", None).await?;\n```\n\n### List Certificates\n\n```rust\nuse azure_security_keyvault_certificates::ResourceExt;\nuse futures::TryStreamExt;\n\nlet mut pager = client.list_certificate_properties(None)?.into_stream();\nwhile let Some(cert) = pager.try_next().await? {\n    let name = cert.resource_id()?.name;\n    println!(\"Certificate: {}\", name);\n}\n```\n\n### Get Certificate Policy\n\n```rust\nlet policy = client\n    .get_certificate_policy(\"certificate-name\", None)\n    .await?\n    .into_model()?;\n```\n\n### Update Certificate Policy\n\n```rust\nuse azure_security_keyvault_certificates::models::UpdateCertificatePolicyParameters;\n\nlet params = UpdateCertificatePolicyParameters {\n    \u002F\u002F Update policy properties\n    ..Default::default()\n};\n\nclient\n    .update_certificate_policy(\"cert-name\", params.try_into()?, None)\n    .await?;\n```\n\n## Certificate Lifecycle\n\n1. **Create** — generates new certificate with policy\n2. **Import** — import existing PFX\u002FPEM certificate\n3. **Get** — retrieve certificate (public key only)\n4. **Update** — modify certificate properties\n5. **Delete** — soft delete (recoverable)\n6. **Purge** — permanent deletion\n\n## Best Practices\n\n1. **Use Entra ID auth** — `DeveloperToolsCredential` for dev\n2. **Use managed certificates** — auto-renewal with supported issuers\n3. **Set proper validity period** — balance security and maintenance\n4. **Use certificate policies** — define renewal and key properties\n5. **Monitor expiration** — set up alerts for expiring certificates\n6. **Enable soft delete** — required for production vaults\n\n## RBAC Permissions\n\nAssign these Key Vault roles:\n- `Key Vault Certificates Officer` — full CRUD on certificates\n- `Key Vault Reader` — read certificate metadata\n\n## Reference Links\n\n| Resource | Link |\n|----------|------|\n| API Reference | https:\u002F\u002Fdocs.rs\u002Fazure_security_keyvault_certificates |\n| Source Code | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-rust\u002Ftree\u002Fmain\u002Fsdk\u002Fkeyvault\u002Fazure_security_keyvault_certificates |\n| crates.io | https:\u002F\u002Fcrates.io\u002Fcrates\u002Fazure_security_keyvault_certificates |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,243,1660,"2026-05-16 13:06:34",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"编程开发","coding","mdi-code-braces","代码生成、调试、审查，提升开发效率",2,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"DevOps","devops","mdi-cog-outline","CI\u002FCD、容器化、部署运维",3,162,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"a4e44735-5893-4506-bcb1-b751cecd7ebd","1.0.0","azure-keyvault-certificates-rust.zip",1862,"uploads\u002Fskills\u002Ffe7c0e71-7ebd-4e89-a0a3-2c7d031004bc\u002Fazure-keyvault-certificates-rust.zip","3d5576e42baa9b337e7cd737338887ecb0d4f3289288edfb6ab448eee3b2e85e","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":4860}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]