diff --git a/internal/applicant/acme_ca.go b/internal/applicant/acme_ca.go index 52bfcb8f..ea0c6b74 100644 --- a/internal/applicant/acme_ca.go +++ b/internal/applicant/acme_ca.go @@ -5,6 +5,7 @@ import "github.com/usual2970/certimate/internal/domain" const ( sslProviderLetsEncrypt = string(domain.ApplyCAProviderTypeLetsEncrypt) sslProviderLetsEncryptStaging = string(domain.ApplyCAProviderTypeLetsEncryptStaging) + sslProviderBuypass = string(domain.ApplyCAProviderTypeBuypass) sslProviderGoogleTrustServices = string(domain.ApplyCAProviderTypeGoogleTrustServices) sslProviderSSLCom = string(domain.ApplyCAProviderTypeSSLCom) sslProviderZeroSSL = string(domain.ApplyCAProviderTypeZeroSSL) @@ -15,8 +16,9 @@ const ( var sslProviderUrls = map[string]string{ sslProviderLetsEncrypt: "https://acme-v02.api.letsencrypt.org/directory", sslProviderLetsEncryptStaging: "https://acme-staging-v02.api.letsencrypt.org/directory", + sslProviderBuypass: "https://api.buypass.com/acme/directory", sslProviderGoogleTrustServices: "https://dv.acme-v02.api.pki.goog/directory", - sslProviderSSLCom: "https://acme.ssl.com/sslcom-dv-ecc", + sslProviderSSLCom: "https://acme.ssl.com/sslcom-dv-rsa", sslProviderZeroSSL: "https://acme.zerossl.com/v2/DV90", } diff --git a/internal/applicant/acme_user.go b/internal/applicant/acme_user.go index fa8e81b9..430db5a3 100644 --- a/internal/applicant/acme_user.go +++ b/internal/applicant/acme_user.go @@ -98,6 +98,11 @@ func registerAcmeUser(client *lego.Client, user *acmeUser, userRegisterOptions m case sslProviderLetsEncrypt, sslProviderLetsEncryptStaging: reg, err = client.Registration.Register(registration.RegisterOptions{TermsOfServiceAgreed: true}) + case sslProviderBuypass: + { + reg, err = client.Registration.Register(registration.RegisterOptions{TermsOfServiceAgreed: true}) + } + case sslProviderGoogleTrustServices: { access := domain.AccessConfigForGoogleTrustServices{} diff --git a/internal/domain/provider.go b/internal/domain/provider.go index c0da68ed..d8726034 100644 --- a/internal/domain/provider.go +++ b/internal/domain/provider.go @@ -19,6 +19,7 @@ const ( AccessProviderTypeBaishan = AccessProviderType("baishan") AccessProviderTypeBaotaPanel = AccessProviderType("baotapanel") AccessProviderTypeBytePlus = AccessProviderType("byteplus") + AccessProviderTypeBuypass = AccessProviderType("buypass") AccessProviderTypeCacheFly = AccessProviderType("cachefly") AccessProviderTypeCdnfly = AccessProviderType("cdnfly") AccessProviderTypeCloudflare = AccessProviderType("cloudflare") @@ -75,6 +76,7 @@ type ApplyCAProviderType string NOTICE: If you add new constant, please keep ASCII order. */ const ( + ApplyCAProviderTypeBuypass = ApplyCAProviderType(string(AccessProviderTypeBuypass)) ApplyCAProviderTypeGoogleTrustServices = ApplyCAProviderType(string(AccessProviderTypeGoogleTrustServices)) ApplyCAProviderTypeLetsEncrypt = ApplyCAProviderType(string(AccessProviderTypeLetsEncrypt)) ApplyCAProviderTypeLetsEncryptStaging = ApplyCAProviderType(string(AccessProviderTypeLetsEncryptStaging)) diff --git a/migrations/1743264000_upgrade.go b/migrations/1743264000_upgrade.go index e7bb5087..75f98b30 100644 --- a/migrations/1743264000_upgrade.go +++ b/migrations/1743264000_upgrade.go @@ -83,6 +83,7 @@ func init() { "baishan", "baotapanel", "byteplus", + "buypass", "cachefly", "cdnfly", "cloudflare", diff --git a/ui/public/imgs/providers/buypass.png b/ui/public/imgs/providers/buypass.png new file mode 100644 index 00000000..f4692538 Binary files /dev/null and b/ui/public/imgs/providers/buypass.png differ diff --git a/ui/src/domain/provider.ts b/ui/src/domain/provider.ts index ac66f670..74296917 100644 --- a/ui/src/domain/provider.ts +++ b/ui/src/domain/provider.ts @@ -13,6 +13,7 @@ export const ACCESS_PROVIDERS = Object.freeze({ BAISHAN: "baishan", BAOTAPANEL: "baotapanel", BYTEPLUS: "byteplus", + BUYPASS: "buypass", CACHEFLY: "cachefly", CDNFLY: "cdnfly", CLOUDFLARE: "cloudflare", @@ -128,9 +129,10 @@ export const accessProvidersMap: Map [ e[0] as string, { @@ -150,6 +152,7 @@ export const accessProvidersMap: Map [ type, { @@ -185,7 +189,7 @@ export const applyCAProvidersMap: Map { ); }; -const SSLProviderEditFormZeroSSLConfig = () => { +const SSLProviderEditFormBuypassConfig = () => { const { t } = useTranslation(); const { pending, settings, updateSettings } = useContext(SSLProviderContext); - const formSchema = z.object({ - eabKid: z - .string({ message: t("settings.sslprovider.form.zerossl_eab_kid.placeholder") }) - .min(1, t("settings.sslprovider.form.zerossl_eab_kid.placeholder")) - .max(256, t("common.errmsg.string_max", { max: 256 })), - eabHmacKey: z - .string({ message: t("settings.sslprovider.form.zerossl_eab_hmac_key.placeholder") }) - .min(1, t("settings.sslprovider.form.zerossl_eab_hmac_key.placeholder")) - .max(256, t("common.errmsg.string_max", { max: 256 })), - }); - const formRule = createSchemaFieldRule(formSchema); - const { form: formInst, formProps } = useAntdForm>({ - initialValues: settings?.content?.config?.[APPLY_CA_PROVIDERS.ZEROSSL], + const { form: formInst, formProps } = useAntdForm>({ + initialValues: settings?.content?.config?.[APPLY_CA_PROVIDERS.BUYPASS], onSubmit: async (values) => { const newSettings = produce(settings, (draft) => { draft.content ??= {} as SSLProviderSettingsContent; - draft.content.provider = APPLY_CA_PROVIDERS.ZEROSSL; + draft.content.provider = APPLY_CA_PROVIDERS.BUYPASS; draft.content.config ??= {} as SSLProviderSettingsContent["config"]; - draft.content.config[APPLY_CA_PROVIDERS.ZEROSSL] = values; + draft.content.config[APPLY_CA_PROVIDERS.BUYPASS] = values; }); await updateSettings(newSettings); @@ -141,7 +130,7 @@ const SSLProviderEditFormZeroSSLConfig = () => { const [formChanged, setFormChanged] = useState(false); useEffect(() => { - setFormChanged(settings?.content?.provider !== APPLY_CA_PROVIDERS.ZEROSSL); + setFormChanged(settings?.content?.provider !== APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING); }, [settings?.content?.provider]); const handleFormChange = () => { @@ -150,24 +139,6 @@ const SSLProviderEditFormZeroSSLConfig = () => { return (
- } - > - - - - } - > - - - + +
+ ); +}; + const SettingsSSLProvider = () => { const { t } = useTranslation(); @@ -349,6 +390,8 @@ const SettingsSSLProvider = () => { return ; case APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING: return ; + case APPLY_CA_PROVIDERS.BUYPASS: + return ; case APPLY_CA_PROVIDERS.GOOGLETRUSTSERVICES: return ; case APPLY_CA_PROVIDERS.SSLCOM: @@ -404,11 +447,11 @@ const SettingsSSLProvider = () => { value={APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING} /> } + avatar={} size="small" - title={t("provider.zerossl")} - description="zerossl.com" - value={APPLY_CA_PROVIDERS.ZEROSSL} + title={t("provider.buypass")} + description="buypass.com" + value={APPLY_CA_PROVIDERS.BUYPASS} /> } @@ -424,6 +467,13 @@ const SettingsSSLProvider = () => { description="ssl.com" value={APPLY_CA_PROVIDERS.SSLCOM} /> + } + size="small" + title={t("provider.zerossl")} + description="zerossl.com" + value={APPLY_CA_PROVIDERS.ZEROSSL} + />