[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EXK91FAQ7GBJM0N83RKHSG":3,"skill-same:01M6EXK91FAQ7GBJM0N83RKHSG":68},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6EXK91FAQ7GBJM0N83RKHSG","azure-keyvault-certificates-rust",null,"Azure Key Vault Certificates SDK for Rust. Use for creating, importing, and managing certificates.\nTriggers: \"keyvault certificates rust\", \"CertificateClient rust\", \"create certificate rust\", \"import certificate rust\".","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fazure-keyvault-certificates-rust\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"rust","azure","azure keyvault certificates rust","certificates","sdk","security","create","vault","certificate","use","azure key vault","triggers","import","2026-11-10 10:12:30",false,"---\nname: azure-keyvault-certificates-rust\ndescription: |\n  Azure Key Vault Certificates SDK for Rust. Use for creating, importing, and managing certificates.\n  Triggers: \"keyvault certificates rust\", \"CertificateClient rust\", \"create certificate rust\", \"import certificate rust\".\npackage: azure_security_keyvault_certificates\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","# 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",{"name":5,"package":37,"description":38},"azure_security_keyvault_certificates","Azure Key Vault Certificates SDK for Rust. Use for creating, importing, and managing certificates.\nTriggers: \"keyvault certificates rust\", \"CertificateClient rust\", \"create certificate rust\", \"import certificate rust\".\n","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fazure-keyvault-certificates-rust",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill azure-keyvault-certificates-rust",{"tool":54,"command":55},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill azure-keyvault-certificates-rust",{"tool":57,"command":58},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill azure-keyvault-certificates-rust","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fazure-keyvault-certificates-rust\u002FSKILL.md",true,[62],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"skill-report.json","REFERENCE","参考文档",9548,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fazure-keyvault-certificates-rust\u002Fskill-report.json",[69,83,93,101,107,114],{"skillNo":70,"name":71,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":79,"publishedAt":32},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[80,81,82],"model","model hierarchy","model hierarchy skill",{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":89,"publishedAt":32},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[88],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[90,91,92],"MCP","zoom","zoom mcp",{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":32},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[23,99,100,91],"zoom apps sdk","apps",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":32},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[103],{"skillNo":108,"name":109,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":113,"publishedAt":32},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[112],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[109],{"skillNo":115,"name":116,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":119,"publishedAt":32},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[116]]