Certificate deployment providers in Certimate are responsible for pushing issued certificates and their corresponding private keys to various infrastructure targets, such as cloud-native load balancers, CDNs, server management panels, and local or remote filesystems.
The deployment system is built on a provider-based abstraction that separates the deployment logic from the workflow engine. Each provider implements a common interface, allowing the bizDeploy node executor to handle any target uniformly.
All deployment providers must satisfy the Provider interface (aliased from core.Deployer) defined in the core deployer package.
Sources: pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go27-28 pkg/core/deployer/providers/apisix/apisix.go17-18 pkg/core/deployer.go10-13
The following diagram illustrates the lifecycle of a deployment operation, from the workflow engine to the final infrastructure target.
Deployment Execution Flow
Sources: pkg/core/deployer/providers/ssh/ssh.go89-106 pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go67-105 pkg/core/deployer/providers/apisix/apisix.go43-66
Deployers generally follow one of three implementation patterns depending on the target infrastructure:
Cloud providers often require certificates to be uploaded to a centralized certificate management service before they can be associated with specific resources.
sdkCertmgr.Upload (aliyun-cas) to push the certificate pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go114-120deployToLoadbalancer or deployToListener to update ALB resources via the ALB SDK pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go124-136ImportCertificate pkg/core/certmgr/providers/azure-keyvault/azure_keyvault.go148-179UploadServerCertificate pkg/core/certmgr/providers/aws-iam/aws_iam.go161-175ImportCertificate to push or replace certificates pkg/core/certmgr/providers/aws-acm/aws_acm.go152-171sdkCertmgr.Upload (tencentcloud-ssl) pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go103-109ModifyHostsCertificate pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go216-220Server panels or specific API endpoints allow direct submission of PEM strings via their APIs.
v1.Secret of type kubernetes.io/tls in a specified namespace pkg/core/deployer/providers/k8s-secret/k8s_secret.go173-184Infrastructure targets receive raw files via standard protocols.
PreCommand, uploads files, and executes a PostCommand pkg/core/deployer/providers/ssh/ssh.go124-173PutObjectString pkg/core/deployer/providers/s3/s3.go93-194Certimate supports over 130 deployment targets organized by cloud and infrastructure types.
These providers integrate with major cloud vendor APIs to update edge services.
| Provider | Supported Services | Key Logic / SDKs |
|---|---|---|
| Aliyun | ALB, WAF, VOD, CDN, DCDN, OSS, APIGW, ESA | alialb.Client, aliwaf.Client, alivod.Client, alicdn.Client |
| Tencent Cloud | EO, SSL-Update, CDN, CLB, COS, CSS, VOD, SCF, GA2, GAAP, TSE | tceo.Client, tcga2.Client, tcssl.Client |
| Volcengine | VOD, APIG, WAF, CertCenter, ImageX, ALB, CLB, DCDN, Live, TOS | vevod.VOD20260101, veapig.APIG |
| AWS | ACM, S3, CloudFront, Amplify, APIGateway, ALB, NLB, CLB, IAM | aws-sdk-go-v2, elasticloadbalancingv2.Client, awsiam.Client |
| JD Cloud | VOD, WAF, Live, ALB, CDN, SSL | jdcloud-sdk |
| BytePlus | APIG, CLB, MediaLive, CertCenter, ALB, TOS | byteplus_apig.Deployer |
| Baidu Cloud | BLB, AppBLB, Cert | baiducloudcert.Provider |
| UCloud | UCLB, UALB, UEWAF | ucloud_uclb.Deployer |
Sources: pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go17-18 pkg/core/deployer/providers/volcengine-vod/volcengine_vod.go14-17 pkg/core/deployer/providers/aws-nlb/aws_nlb.go8-12 pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go15-18 pkg/core/certmgr/providers/aws-iam/aws_iam.go14-15
The following diagram maps high-level provider names to their internal Go structs and configuration types.
Provider Entity Map
Sources: pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go31-58 pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go31-56 pkg/core/deployer/providers/aws-alb/aws_alb.go24-47 pkg/core/deployer/providers/k8s-secret/k8s_secret.go24-52
Most deployers utilize a core.Certmgr instance to handle the "Upload" phase.
cmgrimpl.NewCertmgr for Aliyun CAS pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go78-87cmgrimpl.NewCertmgr for Tencent SSL pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go70-78Many providers support matching domains via wildcards or Certificate SANs.
xcerthostname.IsMatch pkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.go138-145xcerthostname.IsMatchByCertificatePEM to identify resources covered by the certificate's SANs pkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.go144-146 pkg/core/deployer/providers/aliyun-vod/aliyun_vod.go143-145Providers check for existing certificates before uploading to avoid cluttering cloud storage.
NotBefore, Expires, and custom Tags (kvTagCertCN, kvTagCertSN) pkg/core/certmgr/providers/azure-keyvault/azure_keyvault.go87-117ListCertificates and compares SANs, validity dates, and content pkg/core/certmgr/providers/aws-acm/aws_acm.go102-143ListServerCertificates and compares metadata and body pkg/core/certmgr/providers/aws-iam/aws_iam.go108-149Sources:
pkg/core/deployer/providers/aliyun-alb/aliyun_alb.gopkg/core/deployer/providers/tencentcloud-eo/tencentcloud_eo.gopkg/core/deployer/providers/aliyun-cdn/aliyun_cdn.gopkg/core/deployer/providers/aliyun-vod/aliyun_vod.gopkg/core/deployer/providers/aws-alb/aws_alb.gopkg/core/deployer/providers/aws-nlb/aws_nlb.gopkg/core/deployer/providers/k8s-secret/k8s_secret.gopkg/core/certmgr/providers/azure-keyvault/azure_keyvault.gopkg/core/certmgr/providers/aws-acm/aws_acm.gopkg/core/certmgr/providers/aws-iam/aws_iam.gopkg/core/deployer/providers/aliyun-waf/aliyun_waf.goRefresh this wiki