Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Convert Let's Encrypt PEM Files to a PFXDemonstrates how to convert the .pem files provided by Let's Encrypt to a single PFX.
Use ChilkatAx-win32.pkg Procedure Test Handle hoSbPem Boolean iSuccess Variant vSbFullChainPem Handle hoSbFullChainPem Handle hoPfx String sPfxPassword String sTemp1 // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Let's Encrypt provides four .pem files // 1. fullchain.pem // 2. privkey.pem // 3. cert.pem // 4. chain.pem // The cert.pem and chain.pem are redundant. // The fullchain.pem is composed of the cert.pem and chain.pem. // To convert the PEM's to a single .pfx, we don't need the redundant data. // The privkey.pem and fullchain.pem provide the required data. // We can ignore cert.pem and chain.pem (because those certs are already found in fullchain.pem). // We need a single .pem file that contains both the private key, the cert, // and the certs in the chain of authentication. // Let's combine priveky.pem and fullchain.pem into a single .pem Get Create (RefClass(cComChilkatStringBuilder)) To hoSbPem If (Not(IsComObjectCreated(hoSbPem))) Begin Send CreateComObject of hoSbPem End Get ComLoadFile Of hoSbPem "qa_data/pem/lets_encrypt/privkey.pem" "utf-8" To iSuccess If (iSuccess = False) Begin Showln "Failed to load privkey.pem" Procedure_Return End // To be safe, append a blank line.. Get ComAppendLine Of hoSbPem "" False To iSuccess Get Create (RefClass(cComChilkatStringBuilder)) To hoSbFullChainPem If (Not(IsComObjectCreated(hoSbFullChainPem))) Begin Send CreateComObject of hoSbFullChainPem End Get ComLoadFile Of hoSbFullChainPem "qa_data/pem/lets_encrypt/fullchain.pem" "utf-8" To iSuccess If (iSuccess = False) Begin Showln "Failed to load fullchain.pem" Procedure_Return End // Append the full cert chain PEM to the private key PEM. Get pvComObject of hoSbFullChainPem to vSbFullChainPem Get ComAppendSb Of hoSbPem vSbFullChainPem To iSuccess // Load the combined PEM into a Chilkat PFX object. Get Create (RefClass(cComChilkatPfx)) To hoPfx If (Not(IsComObjectCreated(hoPfx))) Begin Send CreateComObject of hoPfx End Get ComGetAsString Of hoSbPem To sTemp1 Get ComLoadPem Of hoPfx sTemp1 "no password required" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPfx To sTemp1 Showln sTemp1 Procedure_Return End // Write the PFX w/ a password. Move "secret" To sPfxPassword Get ComToFile Of hoPfx sPfxPassword "qa_output/sample.pfx" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPfx To sTemp1 Showln sTemp1 Procedure_Return End Showln "Success!" End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.