Lua Requires Chilkat v11.0.0+
Lua
Use a Custom Set of Trusted Root Certificates
See more Certificates Examples
Demonstrates how to build a set of trusted root certificates to be used globally by all Chilkat classes.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local trustedRoots = chilkat.TrustedRoots.new()
-- Indicate that we will NOT trust any pre-installed certificates on the system.
trustedRoots.trust_system_ca_roots = false
-- Thawte is a certificate authority that provides a .zip download of their
-- root CA certificates: https://www.thawte.com/roots/index.html
-- The direct download link is: https://www.verisign.com/support/thawte-roots.zip
-- Note: The above URLs are valid at the time of writing this example (29-May-2015).
-- Assuming the .zip has already been downloaded, open it and load each .pem file into
-- our trusted roots object.
local zip = chilkat.Zip.new()
-- Open a .zip containing PEM files, among other things..
local success = zip:open_zip("qa_data/certs/thawte-roots.zip")
if not success then
print(zip.last_error_text)
return
end
local entry = chilkat.ZipEntry.new()
local pemStr = ""
local cert = chilkat.Cert.new()
local pattern = "*.pem"
local bHasMoreEntries = zip:entry_matching(pattern, entry)
while bHasMoreEntries do
print("Entry: " .. entry.file_name)
-- Get the PEM of the CA cert:
pemStr = entry:unzip_to_string(0, "utf-8")
-- Load it into a certificate object:
success = cert:load_pem(pemStr)
if not success then
print(cert.last_error_text)
end
-- Add it to the trusted roots.
trustedRoots:add_cert(cert)
bHasMoreEntries = entry:get_next_match(pattern)
end
-- Activate the trusted roots globally for all Chilkat objects.
-- This call really shouldn't fail, so we're not checking the return value.
success = trustedRoots:activate()