![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(PowerBuilder) Easy Method to Import Certificate to Azure Key VaultDemonstrates an easier method to import certificate with private key to an Azure key vault. Note: This example requires Chilkat v9.5.0.96 or later.
integer li_rc oleobject loo_Cert integer li_Success oleobject loo_Json oleobject loo_JsonOut loo_Cert = create oleobject // Use "Chilkat_9_5_0.Cert" for versions of Chilkat < 10.0.0 li_rc = loo_Cert.ConnectToNewObject("Chilkat.Cert") if li_rc < 0 then destroy loo_Cert MessageBox("Error","Connecting to COM object failed") return end if // The certificate must originate from a source where the private key material is available to be included // in the upload to Azure Key Vault. li_Success = loo_Cert.LoadPfxFile("qa_data/pfx/myCert.pfx","pfx_password") if li_Success = 0 then Write-Debug loo_Cert.LastErrorText destroy loo_Cert return end if loo_Json = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject") // Indicate this request is to upload to Azure Key Vault. loo_Json.UpdateString("service","azure-keyvault") // Provide your OAuth2 client credentials for your Azure App (service principal) that has // the required Role-Based Access Control (RBAC) permissions. loo_Json.UpdateString("auth.client_id","APP_ID") loo_Json.UpdateString("auth.client_secret","APP_PASSWORD") loo_Json.UpdateString("auth.tenant_id","TENANT_ID") // Indicate the key vault name loo_Json.UpdateString("vault_name","VAULT_NAME") // When you import a certificate into an Azure Key Vault, the certificate name and vault name are included as // parts of the URL to specify the target location where the certificate should be stored. // The URL follows a specific format to identify the target Key Vault and the certificate within it. // Here's how the certificate name and vault name are incorporated into the URL: // https://VAULT_NAME.vault.azure.net//certificates/CERT_NAME/import?api-version=7.4 // Specify an arbitrary certificate name, but one that can be used in a URL as shown above. (i.e. alphanumeric with no SPACE chars) loo_Json.UpdateString("cert_name","CERT_NAME") // Add optional tags if desired. Tags can be anything you want. loo_Json.UpdateString("tags.serial",loo_Cert.SerialNumber) loo_Json.UpdateString("tags.issuer",loo_Cert.IssuerCN) loo_Json.UpdateString("tags.subject",loo_Cert.SubjectCN) // OK.. everything is specified. Simply call UploadToCloud. loo_JsonOut = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_JsonOut.ConnectToNewObject("Chilkat.JsonObject") loo_JsonOut.EmitCompact = 0 li_Success = loo_Cert.UploadToCloud(loo_Json,loo_JsonOut) if li_Success = 0 then Write-Debug loo_Cert.LastErrorText Write-Debug loo_JsonOut.Emit() destroy loo_Cert destroy loo_Json destroy loo_JsonOut return end if // Success! Go to the Azure portal and refresh to see the certificate has been uploaded. // The jsonOut provides the JSON response from the Azure server. Write-Debug loo_JsonOut.Emit() Write-Debug "Success" // Here is sample jsonOut // { // "id": "https://kvchilkat.vault.azure.net/certificates/ChilkatTestCert123/b6e997db70144435a49d924be9f260ef", // "kid": "https://kvchilkat.vault.azure.net/keys/ChilkatTestCert123/b6e997db70144435a49d924be9f260ef", // "sid": "https://kvchilkat.vault.azure.net/secrets/ChilkatTestCert123/b6e997db70144435a49d924be9f260ef", // "x5t": "I_e3776K5Q_6PN1HHvJoI2ZGQRQ", // "cer": "MIIGXjCCBMagAw ... z50cjTsi7yIY=", // "attributes": { // "enabled": true, // "nbf": 1633996800, // "exp": 1728691199, // "created": 1697754785, // "updated": 1697754785, // "recoveryLevel": "CustomizedRecoverable+Purgeable", // "recoverableDays": 7 // }, // "tags": { // "serial": "3FF5B69109BFD4046C92CC0D18EE23C2", // "issuer": "Sectigo Public Code Signing CA R36", // "subject": "Chilkat Software, Inc." // }, // "policy": { // "id": "https://kvchilkat.vault.azure.net/certificates/ChilkatTestCert123/policy", // "key_props": { // "exportable": true, // "kty": "RSA", // "key_size": 4096, // "reuse_key": false // }, // "secret_props": { // "contentType": "application/x-pkcs12" // }, // "x509_props": { // "subject": "CN=\"Chilkat Software, Inc.\", O=\"Chilkat Software, Inc.\", S=Illinois, C=US", // "ekus": [ // "1.3.6.1.5.5.7.3.3" // ], // "key_usage": [ // "digitalSignature" // ], // "validity_months": 37, // "basic_constraints": { // "ca": false // } // }, // "lifetime_actions": [ // { // "trigger": { // "lifetime_percentage": 80 // }, // "action": { // "action_type": "EmailContacts" // } // } // ], // "issuer": { // "name": "Unknown" // }, // "attributes": { // "enabled": true, // "created": 1697754785, // "updated": 1697754785 // } // } // } destroy loo_Cert destroy loo_Json destroy loo_JsonOut |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.