feat: add ssl.com ca

This commit is contained in:
Fu Diwei
2025-03-30 21:46:59 +08:00
parent a72737fdd5
commit f77c2dae23
19 changed files with 285 additions and 96 deletions

View File

@@ -41,6 +41,7 @@ export interface AccessModel extends BaseModel {
| AccessConfigForRainYun
| AccessConfigForSafeLine
| AccessConfigForSSH
| AccessConfigForSSLCom
| AccessConfigForTencentCloud
| AccessConfigForUCloud
| AccessConfigForUpyun
@@ -235,6 +236,11 @@ export type AccessConfigForSSH = {
keyPassphrase?: string;
};
export type AccessConfigForSSLCom = {
eabKid: string;
eabHmacKey: string;
};
export type AccessConfigForTencentCloud = {
secretId: string;
secretKey: string;

View File

@@ -43,6 +43,7 @@ export const ACCESS_PROVIDERS = Object.freeze({
RAINYUN: "rainyun",
SAFELINE: "safeline",
SSH: "ssh",
SSLCOM: "sslcom",
TENCENTCLOUD: "tencentcloud",
UCLOUD: "ucloud",
UPYUN: "upyun",
@@ -129,6 +130,7 @@ export const accessProvidersMap: Map<AccessProvider["type"] | string, AccessProv
[ACCESS_PROVIDERS.LETSENCRYPTSTAGING, "provider.letsencryptstaging", "/imgs/providers/letsencrypt.svg", [ACCESS_USAGES.CA]],
[ACCESS_PROVIDERS.GOOGLETRUSTSERVICES, "provider.googletrustservices", "/imgs/providers/google.svg", [ACCESS_USAGES.CA]],
[ACCESS_PROVIDERS.ZEROSSL, "provider.zerossl", "/imgs/providers/zerossl.svg", [ACCESS_USAGES.CA]],
[ACCESS_PROVIDERS.SSLCOM, "provider.sslcom", "/imgs/providers/sslcom.svg", [ACCESS_USAGES.CA]],
].map((e) => [
e[0] as string,
{
@@ -151,6 +153,7 @@ export const APPLY_CA_PROVIDERS = Object.freeze({
GOOGLETRUSTSERVICES: `${ACCESS_PROVIDERS.GOOGLETRUSTSERVICES}`,
LETSENCRYPT: `${ACCESS_PROVIDERS.LETSENCRYPT}`,
LETSENCRYPTSTAGING: `${ACCESS_PROVIDERS.LETSENCRYPTSTAGING}`,
SSLCOM: `${ACCESS_PROVIDERS.SSLCOM}`,
ZEROSSL: `${ACCESS_PROVIDERS.ZEROSSL}`,
} as const);
@@ -174,6 +177,7 @@ export const applyCAProvidersMap: Map<ApplyCAProvider["type"] | string, ApplyCAP
[APPLY_CA_PROVIDERS.LETSENCRYPTSTAGING, "true"],
[APPLY_CA_PROVIDERS.ZEROSSL],
[APPLY_CA_PROVIDERS.GOOGLETRUSTSERVICES],
[APPLY_CA_PROVIDERS.SSLCOM],
].map(([type, builtin]) => [
type,
{

View File

@@ -1,3 +1,5 @@
import { type ApplyCAProviderType } from "./provider";
export const SETTINGS_NAMES = Object.freeze({
EMAILS: "emails",
NOTIFY_TEMPLATES: "notifyTemplates",
@@ -134,37 +136,12 @@ export const notifyChannelsMap: Map<NotifyChannel["type"], NotifyChannel> = new
// #endregion
// #region Settings: SSLProvider
export const SSLPROVIDERS = Object.freeze({
LETS_ENCRYPT: "letsencrypt",
LETS_ENCRYPT_STAGING: "letsencryptstaging",
ZERO_SSL: "zerossl",
GOOGLE_TRUST_SERVICES: "googletrustservices",
} as const);
export type SSLProviders = (typeof SSLPROVIDERS)[keyof typeof SSLPROVIDERS];
export type SSLProviderSettingsContent = {
provider: (typeof SSLPROVIDERS)[keyof typeof SSLPROVIDERS];
provider: ApplyCAProviderType;
config: {
[key: string]: Record<string, unknown> | undefined;
[SSLPROVIDERS.LETS_ENCRYPT]?: SSLProviderLetsEncryptConfig;
[SSLPROVIDERS.LETS_ENCRYPT_STAGING]?: SSLProviderLetsEncryptConfig;
[SSLPROVIDERS.ZERO_SSL]?: SSLProviderZeroSSLConfig;
[SSLPROVIDERS.GOOGLE_TRUST_SERVICES]?: SSLProviderGoogleTrustServicesConfig;
};
};
export type SSLProviderLetsEncryptConfig = NonNullable<unknown>;
export type SSLProviderZeroSSLConfig = {
eabKid: string;
eabHmacKey: string;
};
export type SSLProviderGoogleTrustServicesConfig = {
eabKid: string;
eabHmacKey: string;
};
// #endregion
// #region Settings: Persistence