Merge branch 'sync-upstream'

This commit is contained in:
Fu Diwei 2025-04-22 21:27:37 +08:00
commit 94f162c189
366 changed files with 1097 additions and 1120 deletions

View File

@ -10,5 +10,7 @@ trim_trailing_whitespace = true
insert_final_newline = true insert_final_newline = true
[*.go] [*.go]
charset = utf-8
end_of_line = lf
indent_size = 2 indent_size = 2
indent_style = tab indent_style = tab

6
go.mod
View File

@ -215,8 +215,8 @@ require (
modernc.org/sqlite v1.37.0 // indirect modernc.org/sqlite v1.37.0 // indirect
) )
replace github.com/Edgio/edgio-api v0.0.0-workspace => ./internal/pkg/vendors/edgio-sdk/edgio-api@v0.0.0-workspace replace github.com/Edgio/edgio-api v0.0.0-workspace => ./internal/pkg/sdk3rd/edgio/edgio-api@v0.0.0-workspace
replace gitlab.ecloud.com/ecloud/ecloudsdkcore v1.0.0 => ./internal/pkg/vendors/cmcc-sdk/ecloudsdkcore@v1.0.0 replace gitlab.ecloud.com/ecloud/ecloudsdkcore v1.0.0 => ./internal/pkg/sdk3rd/cmcc/ecloudsdkcore@v1.0.0
replace gitlab.ecloud.com/ecloud/ecloudsdkclouddns v1.0.1 => ./internal/pkg/vendors/cmcc-sdk/ecloudsdkclouddns@v1.0.1 replace gitlab.ecloud.com/ecloud/ecloudsdkclouddns v1.0.1 => ./internal/pkg/sdk3rd/cmcc/ecloudsdkclouddns@v1.0.1

View File

@ -1,4 +1,4 @@
package applicant package applicant
import "github.com/usual2970/certimate/internal/domain" import "github.com/usual2970/certimate/internal/domain"

View File

@ -1,4 +1,4 @@
package applicant package applicant
import ( import (
"context" "context"
@ -13,8 +13,8 @@ import (
"golang.org/x/sync/singleflight" "golang.org/x/sync/singleflight"
"github.com/usual2970/certimate/internal/domain" "github.com/usual2970/certimate/internal/domain"
"github.com/usual2970/certimate/internal/pkg/utils/certutil" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert"
"github.com/usual2970/certimate/internal/pkg/utils/maputil" maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
"github.com/usual2970/certimate/internal/repository" "github.com/usual2970/certimate/internal/repository"
) )

View File

@ -18,7 +18,7 @@ import (
"golang.org/x/time/rate" "golang.org/x/time/rate"
"github.com/usual2970/certimate/internal/domain" "github.com/usual2970/certimate/internal/domain"
"github.com/usual2970/certimate/internal/pkg/utils/sliceutil" sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice"
"github.com/usual2970/certimate/internal/repository" "github.com/usual2970/certimate/internal/repository"
) )

View File

@ -35,7 +35,7 @@ import (
pVercel "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/vercel" pVercel "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/vercel"
pVolcEngine "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/volcengine" pVolcEngine "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/volcengine"
pWestcn "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/westcn" pWestcn "github.com/usual2970/certimate/internal/pkg/core/applicant/acme-dns-01/lego-providers/westcn"
"github.com/usual2970/certimate/internal/pkg/utils/maputil" maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
) )
func createApplicant(options *applicantOptions) (challenge.Provider, error) { func createApplicant(options *applicantOptions) (challenge.Provider, error) {

View File

@ -17,7 +17,7 @@ import (
"github.com/usual2970/certimate/internal/domain" "github.com/usual2970/certimate/internal/domain"
"github.com/usual2970/certimate/internal/domain/dtos" "github.com/usual2970/certimate/internal/domain/dtos"
"github.com/usual2970/certimate/internal/notify" "github.com/usual2970/certimate/internal/notify"
"github.com/usual2970/certimate/internal/pkg/utils/certutil" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert"
"github.com/usual2970/certimate/internal/repository" "github.com/usual2970/certimate/internal/repository"
) )

View File

@ -78,8 +78,8 @@ import (
pVolcEngineTOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-tos" pVolcEngineTOS "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/volcengine-tos"
pWangsuCDNPro "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/wangsu-cdnpro" pWangsuCDNPro "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/wangsu-cdnpro"
pWebhook "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/webhook" pWebhook "github.com/usual2970/certimate/internal/pkg/core/deployer/providers/webhook"
"github.com/usual2970/certimate/internal/pkg/utils/maputil" maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
"github.com/usual2970/certimate/internal/pkg/utils/sliceutil" sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice"
) )
func createDeployer(options *deployerOptions) (deployer.Deployer, error) { func createDeployer(options *deployerOptions) (deployer.Deployer, error) {
@ -443,7 +443,7 @@ func createDeployer(options *deployerOptions) (deployer.Deployer, error) {
deployer, err := pBunnyCDN.NewDeployer(&pBunnyCDN.DeployerConfig{ deployer, err := pBunnyCDN.NewDeployer(&pBunnyCDN.DeployerConfig{
ApiKey: access.ApiKey, ApiKey: access.ApiKey,
PullZoneId: maputil.GetString(options.ProviderDeployConfig, "pullZoneId"), PullZoneId: maputil.GetString(options.ProviderDeployConfig, "pullZoneId"),
HostName: maputil.GetString(options.ProviderDeployConfig, "hostName"), Hostname: maputil.GetString(options.ProviderDeployConfig, "hostname"),
}) })
return deployer, err return deployer, err
} }

View File

@ -8,7 +8,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/usual2970/certimate/internal/pkg/utils/certutil" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert"
) )
const CollectionNameCertificate = "certificate" const CollectionNameCertificate = "certificate"

View File

@ -1,4 +1,4 @@
package dtos package dtos
type CertificateArchiveFileReq struct { type CertificateArchiveFileReq struct {
CertificateId string `json:"-"` CertificateId string `json:"-"`

View File

@ -1,4 +1,4 @@
package dtos package dtos
import "github.com/usual2970/certimate/internal/domain" import "github.com/usual2970/certimate/internal/domain"

View File

@ -1,4 +1,4 @@
package dtos package dtos
import "github.com/usual2970/certimate/internal/domain" import "github.com/usual2970/certimate/internal/domain"

View File

@ -1,4 +1,4 @@
package domain package domain
type AccessProviderType string type AccessProviderType string

View File

@ -3,7 +3,7 @@ package domain
import ( import (
"time" "time"
"github.com/usual2970/certimate/internal/pkg/utils/maputil" maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
) )
const CollectionNameWorkflow = "workflow" const CollectionNameWorkflow = "workflow"

View File

@ -9,7 +9,7 @@ import (
"github.com/usual2970/certimate/internal/domain" "github.com/usual2970/certimate/internal/domain"
"github.com/usual2970/certimate/internal/pkg/core/notifier" "github.com/usual2970/certimate/internal/pkg/core/notifier"
"github.com/usual2970/certimate/internal/pkg/utils/maputil" maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
"github.com/usual2970/certimate/internal/repository" "github.com/usual2970/certimate/internal/repository"
) )

View File

@ -17,7 +17,7 @@ import (
pTelegram "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/telegram" pTelegram "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/telegram"
pWebhook "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/webhook" pWebhook "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/webhook"
pWeCom "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/wecom" pWeCom "github.com/usual2970/certimate/internal/pkg/core/notifier/providers/wecom"
"github.com/usual2970/certimate/internal/pkg/utils/maputil" maputil "github.com/usual2970/certimate/internal/pkg/utils/map"
) )
func createNotifier(channel domain.NotifyChannelType, channelConfig map[string]any) (notifier.Notifier, error) { func createNotifier(channel domain.NotifyChannelType, channelConfig map[string]any) (notifier.Notifier, error) {

View File

@ -1,4 +1,4 @@
package acmehttpreq package acmehttpreq
import ( import (
"net/url" "net/url"

View File

@ -6,7 +6,7 @@ import (
"github.com/go-acme/lego/v4/challenge" "github.com/go-acme/lego/v4/challenge"
"github.com/go-acme/lego/v4/providers/dns/azuredns" "github.com/go-acme/lego/v4/providers/dns/azuredns"
azcommon "github.com/usual2970/certimate/internal/pkg/vendors/azure-sdk/common" azcommon "github.com/usual2970/certimate/internal/pkg/sdk3rd/azure/common"
) )
type ChallengeProviderConfig struct { type ChallengeProviderConfig struct {

View File

@ -1,4 +1,4 @@
package lego_baiducloud package lego_baiducloud
import ( import (
"errors" "errors"

View File

@ -1,4 +1,4 @@
package lego_dnsla package lego_dnsla
import ( import (
"errors" "errors"
@ -10,7 +10,7 @@ import (
"github.com/go-acme/lego/v4/challenge/dns01" "github.com/go-acme/lego/v4/challenge/dns01"
"github.com/go-acme/lego/v4/platform/config/env" "github.com/go-acme/lego/v4/platform/config/env"
dnslasdk "github.com/usual2970/certimate/internal/pkg/vendors/dnsla-sdk" dnslasdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/dnsla"
) )
const ( const (

View File

@ -1,4 +1,4 @@
package lego_dynv6 package lego_dynv6
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package lego_gname package lego_gname
import ( import (
"errors" "errors"
@ -9,7 +9,7 @@ import (
"github.com/go-acme/lego/v4/challenge/dns01" "github.com/go-acme/lego/v4/challenge/dns01"
"github.com/go-acme/lego/v4/platform/config/env" "github.com/go-acme/lego/v4/platform/config/env"
gnamesdk "github.com/usual2970/certimate/internal/pkg/vendors/gname-sdk" gnamesdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/gname"
) )
const ( const (

View File

@ -1,4 +1,4 @@
package lego_jdcloud package lego_jdcloud
import ( import (
"errors" "errors"

View File

@ -1,4 +1,4 @@
package lego_tencentcloudeo package lego_tencentcloudeo
import ( import (
"errors" "errors"

View File

@ -1,4 +1,4 @@
package deployer package deployer
import ( import (
"context" "context"
@ -14,13 +14,13 @@ type Deployer interface {
// //
// 入参: // 入参:
// - ctx上下文。 // - ctx上下文。
// - certPem:证书 PEM 内容。 // - certPEM:证书 PEM 内容。
// - privkeyPem:私钥 PEM 内容。 // - privkeyPEM:私钥 PEM 内容。
// //
// 出参: // 出参:
// - res部署结果。 // - res部署结果。
// - err: 错误。 // - err: 错误。
Deploy(ctx context.Context, certPem string, privkeyPem string) (res *DeployResult, err error) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (res *DeployResult, err error)
} }
// 表示证书部署结果的数据结构。 // 表示证书部署结果的数据结构。

View File

@ -1,4 +1,4 @@
package onepanelconsole package onepanelconsole
import ( import (
"context" "context"
@ -10,7 +10,7 @@ import (
xerrors "github.com/pkg/errors" xerrors "github.com/pkg/errors"
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
opsdk "github.com/usual2970/certimate/internal/pkg/vendors/1panel-sdk" opsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/1panel"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -58,11 +58,11 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 设置面板 SSL 证书 // 设置面板 SSL 证书
updateSystemSSLReq := &opsdk.UpdateSystemSSLRequest{ updateSystemSSLReq := &opsdk.UpdateSystemSSLRequest{
Cert: certPem, Cert: certPEM,
Key: privkeyPem, Key: privkeyPEM,
SSL: "enable", SSL: "enable",
SSLType: "import-paste", SSLType: "import-paste",
} }

View File

@ -1,4 +1,4 @@
package onepanelconsole_test package onepanelconsole_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package onepanelsite package onepanelsite
import ( import (
"context" "context"
@ -14,7 +14,7 @@ import (
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/1panel-ssl" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/1panel-ssl"
opsdk "github.com/usual2970/certimate/internal/pkg/vendors/1panel-sdk" opsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/1panel"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -79,16 +79,16 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 根据部署资源类型决定部署方式 // 根据部署资源类型决定部署方式
switch d.config.ResourceType { switch d.config.ResourceType {
case RESOURCE_TYPE_WEBSITE: case RESOURCE_TYPE_WEBSITE:
if err := d.deployToWebsite(ctx, certPem, privkeyPem); err != nil { if err := d.deployToWebsite(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
case RESOURCE_TYPE_CERTIFICATE: case RESOURCE_TYPE_CERTIFICATE:
if err := d.deployToCertificate(ctx, certPem, privkeyPem); err != nil { if err := d.deployToCertificate(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
@ -99,7 +99,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
return &deployer.DeployResult{}, nil return &deployer.DeployResult{}, nil
} }
func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPEM string, privkeyPEM string) error {
if d.config.WebsiteId == 0 { if d.config.WebsiteId == 0 {
return errors.New("config `websiteId` is required") return errors.New("config `websiteId` is required")
} }
@ -115,7 +115,7 @@ func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPem string,
} }
// 上传证书到面板 // 上传证书到面板
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return xerrors.Wrap(err, "failed to upload certificate file") return xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {
@ -143,7 +143,7 @@ func (d *DeployerProvider) deployToWebsite(ctx context.Context, certPem string,
return nil return nil
} }
func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM string, privkeyPEM string) error {
if d.config.CertificateId == 0 { if d.config.CertificateId == 0 {
return errors.New("config `certificateId` is required") return errors.New("config `certificateId` is required")
} }
@ -163,8 +163,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri
Type: "paste", Type: "paste",
SSLID: d.config.CertificateId, SSLID: d.config.CertificateId,
Description: getWebsiteSSLResp.Data.Description, Description: getWebsiteSSLResp.Data.Description,
Certificate: certPem, Certificate: certPEM,
PrivateKey: privkeyPem, PrivateKey: privkeyPEM,
} }
uploadWebsiteSSLResp, err := d.sdkClient.UploadWebsiteSSL(uploadWebsiteSSLReq) uploadWebsiteSSLResp, err := d.sdkClient.UploadWebsiteSSL(uploadWebsiteSSLReq)
d.logger.Debug("sdk request '1panel.UploadWebsiteSSL'", slog.Any("request", uploadWebsiteSSLReq), slog.Any("response", uploadWebsiteSSLResp)) d.logger.Debug("sdk request '1panel.UploadWebsiteSSL'", slog.Any("request", uploadWebsiteSSLReq), slog.Any("response", uploadWebsiteSSLResp))

View File

@ -1,4 +1,4 @@
package onepanelsite_test package onepanelsite_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package onepanelsite package onepanelsite
type ResourceType string type ResourceType string

View File

@ -1,4 +1,4 @@
package aliyunalb package aliyunalb
import ( import (
"context" "context"
@ -88,9 +88,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package aliyunalb_test package aliyunalb_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunalb package aliyunalb
type ResourceType string type ResourceType string

View File

@ -1,4 +1,4 @@
package aliyunapigw package aliyunapigw
import ( import (
"context" "context"
@ -84,15 +84,15 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
switch d.config.ServiceType { switch d.config.ServiceType {
case SERVICE_TYPE_TRADITIONAL: case SERVICE_TYPE_TRADITIONAL:
if err := d.deployToTraditional(ctx, certPem, privkeyPem); err != nil { if err := d.deployToTraditional(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
case SERVICE_TYPE_CLOUDNATIVE: case SERVICE_TYPE_CLOUDNATIVE:
if err := d.deployToCloudNative(ctx, certPem, privkeyPem); err != nil { if err := d.deployToCloudNative(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
@ -103,7 +103,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
return &deployer.DeployResult{}, nil return &deployer.DeployResult{}, nil
} }
func (d *DeployerProvider) deployToTraditional(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToTraditional(ctx context.Context, certPEM string, privkeyPEM string) error {
if d.config.GroupId == "" { if d.config.GroupId == "" {
return errors.New("config `groupId` is required") return errors.New("config `groupId` is required")
} }
@ -117,8 +117,8 @@ func (d *DeployerProvider) deployToTraditional(ctx context.Context, certPem stri
GroupId: tea.String(d.config.GroupId), GroupId: tea.String(d.config.GroupId),
DomainName: tea.String(d.config.Domain), DomainName: tea.String(d.config.Domain),
CertificateName: tea.String(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())), CertificateName: tea.String(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())),
CertificateBody: tea.String(certPem), CertificateBody: tea.String(certPEM),
CertificatePrivateKey: tea.String(privkeyPem), CertificatePrivateKey: tea.String(privkeyPEM),
} }
setDomainCertificateResp, err := d.sdkClients.TraditionalAPIGateway.SetDomainCertificate(setDomainCertificateReq) setDomainCertificateResp, err := d.sdkClients.TraditionalAPIGateway.SetDomainCertificate(setDomainCertificateReq)
d.logger.Debug("sdk request 'apigateway.SetDomainCertificate'", slog.Any("request", setDomainCertificateReq), slog.Any("response", setDomainCertificateResp)) d.logger.Debug("sdk request 'apigateway.SetDomainCertificate'", slog.Any("request", setDomainCertificateReq), slog.Any("response", setDomainCertificateResp))
@ -129,7 +129,7 @@ func (d *DeployerProvider) deployToTraditional(ctx context.Context, certPem stri
return nil return nil
} }
func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPEM string, privkeyPEM string) error {
if d.config.GatewayId == "" { if d.config.GatewayId == "" {
return errors.New("config `gatewayId` is required") return errors.New("config `gatewayId` is required")
} }
@ -188,7 +188,7 @@ func (d *DeployerProvider) deployToCloudNative(ctx context.Context, certPem stri
} }
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return xerrors.Wrap(err, "failed to upload certificate file") return xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package aliyunapigw_test package aliyunapigw_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunapigw package aliyunapigw
type ServiceType string type ServiceType string

View File

@ -1,4 +1,4 @@
package aliyuncasdeploy package aliyuncasdeploy
import ( import (
"context" "context"
@ -78,13 +78,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
if len(d.config.ResourceIds) == 0 { if len(d.config.ResourceIds) == 0 {
return nil, errors.New("config `resourceIds` is required") return nil, errors.New("config `resourceIds` is required")
} }
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package aliyuncas package aliyuncas
import ( import (
"context" "context"
@ -59,9 +59,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package aliyuncdn package aliyuncdn
import ( import (
"context" "context"
@ -58,7 +58,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// "*.example.com" → ".example.com",适配阿里云 CDN 要求的泛域名格式 // "*.example.com" → ".example.com",适配阿里云 CDN 要求的泛域名格式
domain := strings.TrimPrefix(d.config.Domain, "*") domain := strings.TrimPrefix(d.config.Domain, "*")
@ -69,8 +69,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())),
CertType: tea.String("upload"), CertType: tea.String("upload"),
SSLProtocol: tea.String("on"), SSLProtocol: tea.String("on"),
SSLPub: tea.String(certPem), SSLPub: tea.String(certPEM),
SSLPri: tea.String(privkeyPem), SSLPri: tea.String(privkeyPEM),
} }
setCdnDomainSSLCertificateResp, err := d.sdkClient.SetCdnDomainSSLCertificate(setCdnDomainSSLCertificateReq) setCdnDomainSSLCertificateResp, err := d.sdkClient.SetCdnDomainSSLCertificate(setCdnDomainSSLCertificateReq)
d.logger.Debug("sdk request 'cdn.SetCdnDomainSSLCertificate'", slog.Any("request", setCdnDomainSSLCertificateReq), slog.Any("response", setCdnDomainSSLCertificateResp)) d.logger.Debug("sdk request 'cdn.SetCdnDomainSSLCertificate'", slog.Any("request", setCdnDomainSSLCertificateReq), slog.Any("response", setCdnDomainSSLCertificateResp))

View File

@ -1,4 +1,4 @@
package aliyuncdn_test package aliyuncdn_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunclb package aliyunclb
import ( import (
"context" "context"
@ -82,9 +82,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 SLB // 上传证书到 SLB
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package aliyunclb_test package aliyunclb_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunclb package aliyunclb
type ResourceType string type ResourceType string

View File

@ -1,4 +1,4 @@
package aliyundcdn package aliyundcdn
import ( import (
"context" "context"
@ -58,7 +58,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// "*.example.com" → ".example.com",适配阿里云 DCDN 要求的泛域名格式 // "*.example.com" → ".example.com",适配阿里云 DCDN 要求的泛域名格式
domain := strings.TrimPrefix(d.config.Domain, "*") domain := strings.TrimPrefix(d.config.Domain, "*")
@ -69,8 +69,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())),
CertType: tea.String("upload"), CertType: tea.String("upload"),
SSLProtocol: tea.String("on"), SSLProtocol: tea.String("on"),
SSLPub: tea.String(certPem), SSLPub: tea.String(certPEM),
SSLPri: tea.String(privkeyPem), SSLPri: tea.String(privkeyPEM),
} }
setDcdnDomainSSLCertificateResp, err := d.sdkClient.SetDcdnDomainSSLCertificate(setDcdnDomainSSLCertificateReq) setDcdnDomainSSLCertificateResp, err := d.sdkClient.SetDcdnDomainSSLCertificate(setDcdnDomainSSLCertificateReq)
d.logger.Debug("sdk request 'dcdn.SetDcdnDomainSSLCertificate'", slog.Any("request", setDcdnDomainSSLCertificateReq), slog.Any("response", setDcdnDomainSSLCertificateResp)) d.logger.Debug("sdk request 'dcdn.SetDcdnDomainSSLCertificate'", slog.Any("request", setDcdnDomainSSLCertificateReq), slog.Any("response", setDcdnDomainSSLCertificateResp))

View File

@ -1,4 +1,4 @@
package aliyundcdn_test package aliyundcdn_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunesa package aliyunesa
import ( import (
"context" "context"
@ -71,13 +71,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
if d.config.SiteId == 0 { if d.config.SiteId == 0 {
return nil, errors.New("config `siteId` is required") return nil, errors.New("config `siteId` is required")
} }
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package aliyunesa_test package aliyunesa_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunfc package aliyunfc
import ( import (
"context" "context"
@ -67,15 +67,15 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
switch d.config.ServiceVersion { switch d.config.ServiceVersion {
case "3", "3.0": case "3", "3.0":
if err := d.deployToFC3(ctx, certPem, privkeyPem); err != nil { if err := d.deployToFC3(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
case "2", "2.0": case "2", "2.0":
if err := d.deployToFC2(ctx, certPem, privkeyPem); err != nil { if err := d.deployToFC2(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
@ -86,7 +86,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
return &deployer.DeployResult{}, nil return &deployer.DeployResult{}, nil
} }
func (d *DeployerProvider) deployToFC3(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToFC3(ctx context.Context, certPEM string, privkeyPEM string) error {
// 获取自定义域名 // 获取自定义域名
// REF: https://help.aliyun.com/zh/functioncompute/fc-3-0/developer-reference/api-fc-2023-03-30-getcustomdomain // REF: https://help.aliyun.com/zh/functioncompute/fc-3-0/developer-reference/api-fc-2023-03-30-getcustomdomain
getCustomDomainResp, err := d.sdkClients.FC3.GetCustomDomain(tea.String(d.config.Domain)) getCustomDomainResp, err := d.sdkClients.FC3.GetCustomDomain(tea.String(d.config.Domain))
@ -101,8 +101,8 @@ func (d *DeployerProvider) deployToFC3(ctx context.Context, certPem string, priv
Body: &alifc3.UpdateCustomDomainInput{ Body: &alifc3.UpdateCustomDomainInput{
CertConfig: &alifc3.CertConfig{ CertConfig: &alifc3.CertConfig{
CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())),
Certificate: tea.String(certPem), Certificate: tea.String(certPEM),
PrivateKey: tea.String(privkeyPem), PrivateKey: tea.String(privkeyPEM),
}, },
Protocol: getCustomDomainResp.Body.Protocol, Protocol: getCustomDomainResp.Body.Protocol,
TlsConfig: getCustomDomainResp.Body.TlsConfig, TlsConfig: getCustomDomainResp.Body.TlsConfig,
@ -117,7 +117,7 @@ func (d *DeployerProvider) deployToFC3(ctx context.Context, certPem string, priv
return nil return nil
} }
func (d *DeployerProvider) deployToFC2(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToFC2(ctx context.Context, certPEM string, privkeyPEM string) error {
// 获取自定义域名 // 获取自定义域名
// REF: https://help.aliyun.com/zh/functioncompute/fc-2-0/developer-reference/api-fc-open-2021-04-06-getcustomdomain // REF: https://help.aliyun.com/zh/functioncompute/fc-2-0/developer-reference/api-fc-open-2021-04-06-getcustomdomain
getCustomDomainResp, err := d.sdkClients.FC2.GetCustomDomain(tea.String(d.config.Domain)) getCustomDomainResp, err := d.sdkClients.FC2.GetCustomDomain(tea.String(d.config.Domain))
@ -131,8 +131,8 @@ func (d *DeployerProvider) deployToFC2(ctx context.Context, certPem string, priv
updateCustomDomainReq := &alifc2.UpdateCustomDomainRequest{ updateCustomDomainReq := &alifc2.UpdateCustomDomainRequest{
CertConfig: &alifc2.CertConfig{ CertConfig: &alifc2.CertConfig{
CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())),
Certificate: tea.String(certPem), Certificate: tea.String(certPEM),
PrivateKey: tea.String(privkeyPem), PrivateKey: tea.String(privkeyPEM),
}, },
Protocol: getCustomDomainResp.Body.Protocol, Protocol: getCustomDomainResp.Body.Protocol,
TlsConfig: getCustomDomainResp.Body.TlsConfig, TlsConfig: getCustomDomainResp.Body.TlsConfig,

View File

@ -1,4 +1,4 @@
package aliyunfc_test package aliyunfc_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunlive package aliyunlive
import ( import (
"context" "context"
@ -60,7 +60,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// "*.example.com" → ".example.com",适配阿里云 Live 要求的泛域名格式 // "*.example.com" → ".example.com",适配阿里云 Live 要求的泛域名格式
domain := strings.TrimPrefix(d.config.Domain, "*") domain := strings.TrimPrefix(d.config.Domain, "*")
@ -71,8 +71,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())),
CertType: tea.String("upload"), CertType: tea.String("upload"),
SSLProtocol: tea.String("on"), SSLProtocol: tea.String("on"),
SSLPub: tea.String(certPem), SSLPub: tea.String(certPEM),
SSLPri: tea.String(privkeyPem), SSLPri: tea.String(privkeyPEM),
} }
setLiveDomainSSLCertificateResp, err := d.sdkClient.SetLiveDomainCertificate(setLiveDomainSSLCertificateReq) setLiveDomainSSLCertificateResp, err := d.sdkClient.SetLiveDomainCertificate(setLiveDomainSSLCertificateReq)
d.logger.Debug("sdk request 'live.SetLiveDomainCertificate'", slog.Any("request", setLiveDomainSSLCertificateReq), slog.Any("response", setLiveDomainSSLCertificateResp)) d.logger.Debug("sdk request 'live.SetLiveDomainCertificate'", slog.Any("request", setLiveDomainSSLCertificateReq), slog.Any("response", setLiveDomainSSLCertificateResp))

View File

@ -1,4 +1,4 @@
package aliyunlive_test package aliyunlive_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunnlb package aliyunnlb
import ( import (
"context" "context"
@ -76,9 +76,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package aliyunnlb_test package aliyunnlb_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunnlb package aliyunnlb
type ResourceType string type ResourceType string

View File

@ -1,4 +1,4 @@
package aliyunoss package aliyunoss
import ( import (
"context" "context"
@ -59,7 +59,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
if d.config.Bucket == "" { if d.config.Bucket == "" {
return nil, errors.New("config `bucket` is required") return nil, errors.New("config `bucket` is required")
} }
@ -72,8 +72,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
putBucketCnameWithCertificateReq := oss.PutBucketCname{ putBucketCnameWithCertificateReq := oss.PutBucketCname{
Cname: d.config.Domain, Cname: d.config.Domain,
CertificateConfiguration: &oss.CertificateConfiguration{ CertificateConfiguration: &oss.CertificateConfiguration{
Certificate: certPem, Certificate: certPEM,
PrivateKey: privkeyPem, PrivateKey: privkeyPEM,
Force: true, Force: true,
}, },
} }

View File

@ -1,4 +1,4 @@
package aliyunoss_test package aliyunoss_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunvod package aliyunvod
import ( import (
"context" "context"
@ -59,7 +59,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 设置域名证书 // 设置域名证书
// REF: https://help.aliyun.com/zh/vod/developer-reference/api-vod-2017-03-21-setvoddomainsslcertificate // REF: https://help.aliyun.com/zh/vod/developer-reference/api-vod-2017-03-21-setvoddomainsslcertificate
setVodDomainSSLCertificateReq := &alivod.SetVodDomainSSLCertificateRequest{ setVodDomainSSLCertificateReq := &alivod.SetVodDomainSSLCertificateRequest{
@ -67,8 +67,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())), CertName: tea.String(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())),
CertType: tea.String("upload"), CertType: tea.String("upload"),
SSLProtocol: tea.String("on"), SSLProtocol: tea.String("on"),
SSLPub: tea.String(certPem), SSLPub: tea.String(certPEM),
SSLPri: tea.String(privkeyPem), SSLPri: tea.String(privkeyPEM),
} }
setVodDomainSSLCertificateResp, err := d.sdkClient.SetVodDomainSSLCertificate(setVodDomainSSLCertificateReq) setVodDomainSSLCertificateResp, err := d.sdkClient.SetVodDomainSSLCertificate(setVodDomainSSLCertificateReq)
d.logger.Debug("sdk request 'live.SetVodDomainSSLCertificate'", slog.Any("request", setVodDomainSSLCertificateReq), slog.Any("response", setVodDomainSSLCertificateResp)) d.logger.Debug("sdk request 'live.SetVodDomainSSLCertificate'", slog.Any("request", setVodDomainSSLCertificateReq), slog.Any("response", setVodDomainSSLCertificateResp))

View File

@ -1,4 +1,4 @@
package aliyunvod_test package aliyunvod_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package aliyunwaf package aliyunwaf
import ( import (
"context" "context"
@ -15,7 +15,7 @@ import (
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/aliyun-cas" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/aliyun-cas"
"github.com/usual2970/certimate/internal/pkg/utils/sliceutil" sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -75,14 +75,14 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
if d.config.InstanceId == "" { if d.config.InstanceId == "" {
return nil, errors.New("config `instanceId` is required") return nil, errors.New("config `instanceId` is required")
} }
switch d.config.ServiceVersion { switch d.config.ServiceVersion {
case "3", "3.0": case "3", "3.0":
if err := d.deployToWAF3(ctx, certPem, privkeyPem); err != nil { if err := d.deployToWAF3(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
@ -93,9 +93,9 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
return &deployer.DeployResult{}, nil return &deployer.DeployResult{}, nil
} }
func (d *DeployerProvider) deployToWAF3(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToWAF3(ctx context.Context, certPEM string, privkeyPEM string) error {
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return xerrors.Wrap(err, "failed to upload certificate file") return xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package aliyunwaf_test package aliyunwaf_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package awsacm package awsacm
import ( import (
"context" "context"
@ -59,9 +59,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 ACM // 上传证书到 ACM
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package awscloudfront package awscloudfront
import ( import (
"context" "context"
@ -74,13 +74,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
if d.config.DistributionId == "" { if d.config.DistributionId == "" {
return nil, errors.New("config `distribuitionId` is required") return nil, errors.New("config `distribuitionId` is required")
} }
// 上传证书到 ACM // 上传证书到 ACM
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package awscloudfront_test package awscloudfront_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package azurekeyvault package azurekeyvault
import ( import (
"context" "context"
@ -17,8 +17,8 @@ import (
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/azure-keyvault" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/azure-keyvault"
"github.com/usual2970/certimate/internal/pkg/utils/certutil" azcommon "github.com/usual2970/certimate/internal/pkg/sdk3rd/azure/common"
azcommon "github.com/usual2970/certimate/internal/pkg/vendors/azure-sdk/common" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -85,22 +85,22 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 解析证书内容 // 解析证书内容
certX509, err := certutil.ParseCertificateFromPEM(certPem) certX509, err := certutil.ParseCertificateFromPEM(certPEM)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// 转换证书格式 // 转换证书格式
certPfx, err := certutil.TransformCertificateFromPEMToPFX(certPem, privkeyPem, "") certPFX, err := certutil.TransformCertificateFromPEMToPFX(certPEM, privkeyPEM, "")
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to transform certificate from PEM to PFX") return nil, xerrors.Wrap(err, "failed to transform certificate from PEM to PFX")
} }
if d.config.CertificateName == "" { if d.config.CertificateName == "" {
// 上传证书到 KeyVault // 上传证书到 KeyVault
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {
@ -128,7 +128,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
// 导入证书 // 导入证书
// REF: https://learn.microsoft.com/en-us/rest/api/keyvault/certificates/import-certificate/import-certificate // REF: https://learn.microsoft.com/en-us/rest/api/keyvault/certificates/import-certificate/import-certificate
importCertificateParams := azcertificates.ImportCertificateParameters{ importCertificateParams := azcertificates.ImportCertificateParameters{
Base64EncodedCertificate: to.Ptr(base64.StdEncoding.EncodeToString(certPfx)), Base64EncodedCertificate: to.Ptr(base64.StdEncoding.EncodeToString(certPFX)),
CertificatePolicy: &azcertificates.CertificatePolicy{ CertificatePolicy: &azcertificates.CertificatePolicy{
SecretProperties: &azcertificates.SecretProperties{ SecretProperties: &azcertificates.SecretProperties{
ContentType: to.Ptr("application/x-pkcs12"), ContentType: to.Ptr("application/x-pkcs12"),

View File

@ -1,4 +1,4 @@
package baiducloudappblb package baiducloudappblb
import ( import (
"context" "context"
@ -15,7 +15,7 @@ import (
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/baiducloud-cert" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/baiducloud-cert"
"github.com/usual2970/certimate/internal/pkg/utils/sliceutil" sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -82,9 +82,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package baiducloudappblb_test package baiducloudappblb_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package baiducloudappblb package baiducloudappblb
type ResourceType string type ResourceType string

View File

@ -1,4 +1,4 @@
package baiducloudblb package baiducloudblb
import ( import (
"context" "context"
@ -15,7 +15,7 @@ import (
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/baiducloud-cert" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/baiducloud-cert"
"github.com/usual2970/certimate/internal/pkg/utils/sliceutil" sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -82,9 +82,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package baiducloudblb_test package baiducloudblb_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package baiducloudblb package baiducloudblb
type ResourceType string type ResourceType string

View File

@ -1,4 +1,4 @@
package baiducloudcdn package baiducloudcdn
import ( import (
"context" "context"
@ -56,15 +56,15 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 修改域名证书 // 修改域名证书
// REF: https://cloud.baidu.com/doc/CDN/s/qjzuz2hp8 // REF: https://cloud.baidu.com/doc/CDN/s/qjzuz2hp8
putCertResp, err := d.sdkClient.PutCert( putCertResp, err := d.sdkClient.PutCert(
d.config.Domain, d.config.Domain,
&bcecdnapi.UserCertificate{ &bcecdnapi.UserCertificate{
CertName: fmt.Sprintf("certimate-%d", time.Now().UnixMilli()), CertName: fmt.Sprintf("certimate-%d", time.Now().UnixMilli()),
ServerData: certPem, ServerData: certPEM,
PrivateData: privkeyPem, PrivateData: privkeyPEM,
}, },
"ON", "ON",
) )

View File

@ -1,4 +1,4 @@
package baiducloudcdn_test package baiducloudcdn_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package baiducloudcert package baiducloudcert
import ( import (
"context" "context"
@ -55,9 +55,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 CAS // 上传证书到 CAS
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package baishancdn package baishancdn
import ( import (
"context" "context"
@ -13,7 +13,7 @@ import (
xerrors "github.com/pkg/errors" xerrors "github.com/pkg/errors"
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
bssdk "github.com/usual2970/certimate/internal/pkg/vendors/baishan-sdk" bssdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/baishan"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -60,7 +60,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
if d.config.Domain == "" { if d.config.Domain == "" {
return nil, errors.New("config `domain` is required") return nil, errors.New("config `domain` is required")
} }
@ -70,8 +70,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
// REF: https://portal.baishancloud.com/track/document/downloadPdf/1441 // REF: https://portal.baishancloud.com/track/document/downloadPdf/1441
certificateId := "" certificateId := ""
createCertificateReq := &bssdk.CreateCertificateRequest{ createCertificateReq := &bssdk.CreateCertificateRequest{
Certificate: certPem, Certificate: certPEM,
Key: privkeyPem, Key: privkeyPEM,
Name: fmt.Sprintf("certimate_%d", time.Now().UnixMilli()), Name: fmt.Sprintf("certimate_%d", time.Now().UnixMilli()),
} }
createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq)
@ -129,8 +129,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
// REF: https://portal.baishancloud.com/track/document/downloadPdf/1441 // REF: https://portal.baishancloud.com/track/document/downloadPdf/1441
createCertificateReq := &bssdk.CreateCertificateRequest{ createCertificateReq := &bssdk.CreateCertificateRequest{
CertificateId: &d.config.CertificateId, CertificateId: &d.config.CertificateId,
Certificate: certPem, Certificate: certPEM,
Key: privkeyPem, Key: privkeyPEM,
Name: fmt.Sprintf("certimate_%d", time.Now().UnixMilli()), Name: fmt.Sprintf("certimate_%d", time.Now().UnixMilli()),
} }
createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq)

View File

@ -1,4 +1,4 @@
package baishancdn_test package baishancdn_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package baotapanelconsole package baotapanelconsole
import ( import (
"context" "context"
@ -10,7 +10,7 @@ import (
xerrors "github.com/pkg/errors" xerrors "github.com/pkg/errors"
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
btsdk "github.com/usual2970/certimate/internal/pkg/vendors/btpanel-sdk" btsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/btpanel"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -58,11 +58,11 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 设置面板 SSL 证书 // 设置面板 SSL 证书
configSavePanelSSLReq := &btsdk.ConfigSavePanelSSLRequest{ configSavePanelSSLReq := &btsdk.ConfigSavePanelSSLRequest{
PrivateKey: privkeyPem, PrivateKey: privkeyPEM,
Certificate: certPem, Certificate: certPEM,
} }
configSavePanelSSLResp, err := d.sdkClient.ConfigSavePanelSSL(configSavePanelSSLReq) configSavePanelSSLResp, err := d.sdkClient.ConfigSavePanelSSL(configSavePanelSSLReq)
d.logger.Debug("sdk request 'bt.ConfigSavePanelSSL'", slog.Any("request", configSavePanelSSLReq), slog.Any("response", configSavePanelSSLResp)) d.logger.Debug("sdk request 'bt.ConfigSavePanelSSL'", slog.Any("request", configSavePanelSSLReq), slog.Any("response", configSavePanelSSLResp))

View File

@ -1,4 +1,4 @@
package baotapanelconsole_test package baotapanelconsole_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package baotapanelsite package baotapanelsite
import ( import (
"context" "context"
@ -11,8 +11,8 @@ import (
xerrors "github.com/pkg/errors" xerrors "github.com/pkg/errors"
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/utils/sliceutil" btsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/btpanel"
btsdk "github.com/usual2970/certimate/internal/pkg/vendors/btpanel-sdk" sliceutil "github.com/usual2970/certimate/internal/pkg/utils/slice"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -64,7 +64,7 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
switch d.config.SiteType { switch d.config.SiteType {
case "php": case "php":
{ {
@ -76,8 +76,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
siteSetSSLReq := &btsdk.SiteSetSSLRequest{ siteSetSSLReq := &btsdk.SiteSetSSLRequest{
SiteName: d.config.SiteName, SiteName: d.config.SiteName,
Type: "0", Type: "0",
Certificate: certPem, Certificate: certPEM,
PrivateKey: privkeyPem, PrivateKey: privkeyPEM,
} }
siteSetSSLResp, err := d.sdkClient.SiteSetSSL(siteSetSSLReq) siteSetSSLResp, err := d.sdkClient.SiteSetSSL(siteSetSSLReq)
d.logger.Debug("sdk request 'bt.SiteSetSSL'", slog.Any("request", siteSetSSLReq), slog.Any("response", siteSetSSLResp)) d.logger.Debug("sdk request 'bt.SiteSetSSL'", slog.Any("request", siteSetSSLReq), slog.Any("response", siteSetSSLResp))
@ -94,8 +94,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
// 上传证书 // 上传证书
sslCertSaveCertReq := &btsdk.SSLCertSaveCertRequest{ sslCertSaveCertReq := &btsdk.SSLCertSaveCertRequest{
Certificate: certPem, Certificate: certPEM,
PrivateKey: privkeyPem, PrivateKey: privkeyPEM,
} }
sslCertSaveCertResp, err := d.sdkClient.SSLCertSaveCert(sslCertSaveCertReq) sslCertSaveCertResp, err := d.sdkClient.SSLCertSaveCert(sslCertSaveCertReq)
d.logger.Debug("sdk request 'bt.SSLCertSaveCert'", slog.Any("request", sslCertSaveCertReq), slog.Any("response", sslCertSaveCertResp)) d.logger.Debug("sdk request 'bt.SSLCertSaveCert'", slog.Any("request", sslCertSaveCertReq), slog.Any("response", sslCertSaveCertResp))

View File

@ -1,4 +1,4 @@
package baotapanelsite_test package baotapanelsite_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package bunnycdn package bunnycdn
import ( import (
"context" "context"
@ -8,16 +8,16 @@ import (
xerrors "github.com/pkg/errors" xerrors "github.com/pkg/errors"
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
bunnysdk "github.com/usual2970/certimate/internal/pkg/vendors/bunny-sdk" bunnysdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/bunny"
) )
type DeployerConfig struct { type DeployerConfig struct {
// Bunny API Key // Bunny API Key
ApiKey string `json:"apiKey"` ApiKey string `json:"apiKey"`
// Bunny Pull Zone ID // Bunny Pull Zone ID
PullZoneId string `json:"pullZoneId"` PullZoneId string `json:"pullZoneId"`
// Bunny CDN Hostname支持泛域名 // Bunny CDN Hostname支持泛域名
HostName string `json:"hostName"` Hostname string `json:"hostname"`
} }
type DeployerProvider struct { type DeployerProvider struct {
@ -49,21 +49,18 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// Prepare
certPemBase64 := base64.StdEncoding.EncodeToString([]byte(certPem))
privkeyPemBase64 := base64.StdEncoding.EncodeToString([]byte(privkeyPem))
// 上传证书 // 上传证书
createCertificateReq := &bunnysdk.AddCustomCertificateRequest{ createCertificateReq := &bunnysdk.AddCustomCertificateRequest{
Hostname: d.config.HostName, Hostname: d.config.Hostname,
PullZoneId: d.config.PullZoneId, PullZoneId: d.config.PullZoneId,
Certificate: certPemBase64, Certificate: base64.StdEncoding.EncodeToString([]byte(certPEM)),
CertificateKey: privkeyPemBase64, CertificateKey: base64.StdEncoding.EncodeToString([]byte(privkeyPEM)),
} }
createCertificateResp, err := d.sdkClient.AddCustomCertificate(createCertificateReq) createCertificateResp, err := d.sdkClient.AddCustomCertificate(createCertificateReq)
d.logger.Debug("sdk request 'bunny-cdn.AddCustomCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) d.logger.Debug("sdk request 'bunny.AddCustomCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp))
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to execute sdk request 'bunny-cdn.AddCustomCertificate'") return nil, xerrors.Wrap(err, "failed to execute sdk request 'bunny.AddCustomCertificate'")
} }
return &deployer.DeployResult{}, nil return &deployer.DeployResult{}, nil

View File

@ -1,4 +1,4 @@
package bunnycdn_test package bunnycdn_test
import ( import (
"context" "context"
@ -55,7 +55,7 @@ func TestDeploy(t *testing.T) {
deployer, err := provider.NewDeployer(&provider.DeployerConfig{ deployer, err := provider.NewDeployer(&provider.DeployerConfig{
ApiKey: fApiKey, ApiKey: fApiKey,
PullZoneId: fPullZoneId, PullZoneId: fPullZoneId,
HostName: fHostName, Hostname: fHostName,
}) })
if err != nil { if err != nil {
t.Errorf("err: %+v", err) t.Errorf("err: %+v", err)

View File

@ -1,4 +1,4 @@
package bytepluscdn package bytepluscdn
import ( import (
"context" "context"
@ -67,9 +67,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 CDN // 上传证书到 CDN
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package bytepluscdn_test package bytepluscdn_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package cachefly package cachefly
import ( import (
"context" "context"
@ -8,7 +8,7 @@ import (
xerrors "github.com/pkg/errors" xerrors "github.com/pkg/errors"
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
cfsdk "github.com/usual2970/certimate/internal/pkg/vendors/cachefly-sdk" cfsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/cachefly"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -50,11 +50,11 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书 // 上传证书
createCertificateReq := &cfsdk.CreateCertificateRequest{ createCertificateReq := &cfsdk.CreateCertificateRequest{
Certificate: certPem, Certificate: certPEM,
CertificateKey: privkeyPem, CertificateKey: privkeyPEM,
} }
createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq)
d.logger.Debug("sdk request 'cachefly.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) d.logger.Debug("sdk request 'cachefly.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp))

View File

@ -1,4 +1,4 @@
package cachefly_test package cachefly_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package cdnfly package cdnfly
import ( import (
"context" "context"
@ -12,7 +12,7 @@ import (
xerrors "github.com/pkg/errors" xerrors "github.com/pkg/errors"
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
cfsdk "github.com/usual2970/certimate/internal/pkg/vendors/cdnfly-sdk" cfsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/cdnfly"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -66,16 +66,16 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 根据部署资源类型决定部署方式 // 根据部署资源类型决定部署方式
switch d.config.ResourceType { switch d.config.ResourceType {
case RESOURCE_TYPE_SITE: case RESOURCE_TYPE_SITE:
if err := d.deployToSite(ctx, certPem, privkeyPem); err != nil { if err := d.deployToSite(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
case RESOURCE_TYPE_CERTIFICATE: case RESOURCE_TYPE_CERTIFICATE:
if err := d.deployToCertificate(ctx, certPem, privkeyPem); err != nil { if err := d.deployToCertificate(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
@ -86,7 +86,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
return &deployer.DeployResult{}, nil return &deployer.DeployResult{}, nil
} }
func (d *DeployerProvider) deployToSite(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToSite(ctx context.Context, certPEM string, privkeyPEM string) error {
if d.config.SiteId == "" { if d.config.SiteId == "" {
return errors.New("config `siteId` is required") return errors.New("config `siteId` is required")
} }
@ -107,8 +107,8 @@ func (d *DeployerProvider) deployToSite(ctx context.Context, certPem string, pri
createCertificateReq := &cfsdk.CreateCertificateRequest{ createCertificateReq := &cfsdk.CreateCertificateRequest{
Name: fmt.Sprintf("certimate-%d", time.Now().UnixMilli()), Name: fmt.Sprintf("certimate-%d", time.Now().UnixMilli()),
Type: "custom", Type: "custom",
Cert: certPem, Cert: certPEM,
Key: privkeyPem, Key: privkeyPEM,
} }
createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq) createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq)
d.logger.Debug("sdk request 'cdnfly.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp)) d.logger.Debug("sdk request 'cdnfly.CreateCertificate'", slog.Any("request", createCertificateReq), slog.Any("response", createCertificateResp))
@ -136,7 +136,7 @@ func (d *DeployerProvider) deployToSite(ctx context.Context, certPem string, pri
return nil return nil
} }
func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM string, privkeyPEM string) error {
if d.config.CertificateId == "" { if d.config.CertificateId == "" {
return errors.New("config `certificateId` is required") return errors.New("config `certificateId` is required")
} }
@ -147,8 +147,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri
updateCertificateReq := &cfsdk.UpdateCertificateRequest{ updateCertificateReq := &cfsdk.UpdateCertificateRequest{
Id: d.config.CertificateId, Id: d.config.CertificateId,
Type: &updateCertificateType, Type: &updateCertificateType,
Cert: &certPem, Cert: &certPEM,
Key: &privkeyPem, Key: &privkeyPEM,
} }
updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq) updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq)
d.logger.Debug("sdk request 'cdnfly.UpdateCertificate'", slog.Any("request", updateCertificateReq), slog.Any("response", updateCertificateResp)) d.logger.Debug("sdk request 'cdnfly.UpdateCertificate'", slog.Any("request", updateCertificateReq), slog.Any("response", updateCertificateResp))

View File

@ -1,4 +1,4 @@
package cdnfly_test package cdnfly_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package cdnfly package cdnfly
type ResourceType string type ResourceType string

View File

@ -1,4 +1,4 @@
package dogecloudcdn package dogecloudcdn
import ( import (
"context" "context"
@ -10,7 +10,7 @@ import (
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/dogecloud" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/dogecloud"
dogesdk "github.com/usual2970/certimate/internal/pkg/vendors/dogecloud-sdk" dogesdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/dogecloud"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -64,9 +64,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 CDN // 上传证书到 CDN
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package dogecloudcdn_test package dogecloudcdn_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package edgioapplications package edgioapplications
import ( import (
"context" "context"
@ -9,7 +9,7 @@ import (
xerrors "github.com/pkg/errors" xerrors "github.com/pkg/errors"
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/utils/certutil" certutil "github.com/usual2970/certimate/internal/pkg/utils/cert"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -55,9 +55,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 提取 Edgio 所需的服务端证书和中间证书内容 // 提取 Edgio 所需的服务端证书和中间证书内容
privateCertPem, intermediateCertPem, err := certutil.ExtractCertificatesFromPEM(certPem) privateCertPEM, intermediateCertPEM, err := certutil.ExtractCertificatesFromPEM(certPEM)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -66,9 +66,9 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
// REF: https://docs.edg.io/rest_api/#tag/tls-certs/operation/postConfigV01TlsCerts // REF: https://docs.edg.io/rest_api/#tag/tls-certs/operation/postConfigV01TlsCerts
uploadTlsCertReq := edgiodtos.UploadTlsCertRequest{ uploadTlsCertReq := edgiodtos.UploadTlsCertRequest{
EnvironmentID: d.config.EnvironmentId, EnvironmentID: d.config.EnvironmentId,
PrimaryCert: privateCertPem, PrimaryCert: privateCertPEM,
IntermediateCert: intermediateCertPem, IntermediateCert: intermediateCertPEM,
PrivateKey: privkeyPem, PrivateKey: privkeyPEM,
} }
uploadTlsCertResp, err := d.sdkClient.UploadTlsCert(uploadTlsCertReq) uploadTlsCertResp, err := d.sdkClient.UploadTlsCert(uploadTlsCertReq)
d.logger.Debug("sdk request 'edgio.UploadTlsCert'", slog.Any("request", uploadTlsCertReq), slog.Any("response", uploadTlsCertResp)) d.logger.Debug("sdk request 'edgio.UploadTlsCert'", slog.Any("request", uploadTlsCertReq), slog.Any("response", uploadTlsCertResp))

View File

@ -1,4 +1,4 @@
package edgioapplications_test package edgioapplications_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package gcorecdn package gcorecdn
import ( import (
"context" "context"
@ -13,7 +13,7 @@ import (
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/gcore-cdn" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/gcore-cdn"
gcoresdk "github.com/usual2970/certimate/internal/pkg/vendors/gcore-sdk/common" gcoresdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/gcore/common"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -67,13 +67,13 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
if d.config.ResourceId == 0 { if d.config.ResourceId == 0 {
return nil, errors.New("config `resourceId` is required") return nil, errors.New("config `resourceId` is required")
} }
// 上传证书到 CDN // 上传证书到 CDN
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package gcorecdn_test package gcorecdn_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package huaweicloudcdn package huaweicloudcdn
import ( import (
"context" "context"
@ -13,7 +13,7 @@ import (
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-scm" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-scm"
hwsdk "github.com/usual2970/certimate/internal/pkg/vendors/huaweicloud-sdk" hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -76,9 +76,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 SCM // 上传证书到 SCM
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package huaweicloudcdn_test package huaweicloudcdn_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package huaweicloudelb package huaweicloudelb
type ResourceType string type ResourceType string

View File

@ -1,4 +1,4 @@
package huaweicloudelb package huaweicloudelb
import ( import (
"context" "context"
@ -20,7 +20,7 @@ import (
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-elb" uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-elb"
hwsdk "github.com/usual2970/certimate/internal/pkg/vendors/huaweicloud-sdk" hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud"
) )
type DeployerConfig struct { type DeployerConfig struct {
@ -89,21 +89,21 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 根据部署资源类型决定部署方式 // 根据部署资源类型决定部署方式
switch d.config.ResourceType { switch d.config.ResourceType {
case RESOURCE_TYPE_CERTIFICATE: case RESOURCE_TYPE_CERTIFICATE:
if err := d.deployToCertificate(ctx, certPem, privkeyPem); err != nil { if err := d.deployToCertificate(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
case RESOURCE_TYPE_LOADBALANCER: case RESOURCE_TYPE_LOADBALANCER:
if err := d.deployToLoadbalancer(ctx, certPem, privkeyPem); err != nil { if err := d.deployToLoadbalancer(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
case RESOURCE_TYPE_LISTENER: case RESOURCE_TYPE_LISTENER:
if err := d.deployToListener(ctx, certPem, privkeyPem); err != nil { if err := d.deployToListener(ctx, certPEM, privkeyPEM); err != nil {
return nil, err return nil, err
} }
@ -114,7 +114,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPe
return &deployer.DeployResult{}, nil return &deployer.DeployResult{}, nil
} }
func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM string, privkeyPEM string) error {
if d.config.CertificateId == "" { if d.config.CertificateId == "" {
return errors.New("config `certificateId` is required") return errors.New("config `certificateId` is required")
} }
@ -125,8 +125,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri
CertificateId: d.config.CertificateId, CertificateId: d.config.CertificateId,
Body: &hcelbmodel.UpdateCertificateRequestBody{ Body: &hcelbmodel.UpdateCertificateRequestBody{
Certificate: &hcelbmodel.UpdateCertificateOption{ Certificate: &hcelbmodel.UpdateCertificateOption{
Certificate: hwsdk.StringPtr(certPem), Certificate: hwsdk.StringPtr(certPEM),
PrivateKey: hwsdk.StringPtr(privkeyPem), PrivateKey: hwsdk.StringPtr(privkeyPEM),
}, },
}, },
} }
@ -139,7 +139,7 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPem stri
return nil return nil
} }
func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPEM string, privkeyPEM string) error {
if d.config.LoadbalancerId == "" { if d.config.LoadbalancerId == "" {
return errors.New("config `loadbalancerId` is required") return errors.New("config `loadbalancerId` is required")
} }
@ -187,7 +187,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPem str
} }
// 上传证书到 SCM // 上传证书到 SCM
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return xerrors.Wrap(err, "failed to upload certificate file") return xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {
@ -215,13 +215,13 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPem str
return nil return nil
} }
func (d *DeployerProvider) deployToListener(ctx context.Context, certPem string, privkeyPem string) error { func (d *DeployerProvider) deployToListener(ctx context.Context, certPEM string, privkeyPEM string) error {
if d.config.ListenerId == "" { if d.config.ListenerId == "" {
return errors.New("config `listenerId` is required") return errors.New("config `listenerId` is required")
} }
// 上传证书到 SCM // 上传证书到 SCM
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return xerrors.Wrap(err, "failed to upload certificate file") return xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

View File

@ -1,4 +1,4 @@
package huaweicloudelb_test package huaweicloudelb_test
import ( import (
"context" "context"

View File

@ -1,4 +1,4 @@
package huaweicloudscm package huaweicloudscm
import ( import (
"context" "context"
@ -56,9 +56,9 @@ func (d *DeployerProvider) WithLogger(logger *slog.Logger) deployer.Deployer {
return d return d
} }
func (d *DeployerProvider) Deploy(ctx context.Context, certPem string, privkeyPem string) (*deployer.DeployResult, error) { func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPEM string) (*deployer.DeployResult, error) {
// 上传证书到 SCM // 上传证书到 SCM
upres, err := d.sslUploader.Upload(ctx, certPem, privkeyPem) upres, err := d.sslUploader.Upload(ctx, certPEM, privkeyPEM)
if err != nil { if err != nil {
return nil, xerrors.Wrap(err, "failed to upload certificate file") return nil, xerrors.Wrap(err, "failed to upload certificate file")
} else { } else {

Some files were not shown because too many files have changed in this diff Show More