feat: 域名验证方法支持CNAME间接方式,此方式支持所有域名注册商,且无需提供Access授权,但是需要手动添加cname解析

This commit is contained in:
xiaojunnuo
2024-10-07 03:21:16 +08:00
parent 0c8e83e125
commit f3d35084ed
123 changed files with 2373 additions and 456 deletions

View File

@@ -1,9 +1,4 @@
import {
AbstractDnsProvider,
CreateRecordOptions,
IsDnsProvider,
RemoveRecordOptions,
} from '@certd/plugin-cert';
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
import { Autowire, HttpClient, ILogger } from '@certd/pipeline';
import { CloudflareAccess } from './access.js';
@@ -88,9 +83,7 @@ export class CloudflareDnsProvider extends AbstractDnsProvider<CloudflareRecord>
ttl: 60,
});
const record = res.result as CloudflareRecord;
this.logger.info(
`添加域名解析成功:fullRecord=${fullRecord},value=${value}`
);
this.logger.info(`添加域名解析成功:fullRecord=${fullRecord},value=${value}`);
this.logger.info(`dns解析记录:${JSON.stringify(record)}`);
//本接口需要返回本次创建的dns解析记录这个记录会在删除的时候用到
@@ -101,10 +94,9 @@ export class CloudflareDnsProvider extends AbstractDnsProvider<CloudflareRecord>
* 删除dns解析记录,清理申请痕迹
* @param options
*/
async removeRecord(
options: RemoveRecordOptions<CloudflareRecord>
): Promise<void> {
const { fullRecord, value, record } = options;
async removeRecord(options: RemoveRecordOptions<CloudflareRecord>): Promise<void> {
const { fullRecord, value } = options.recordReq;
const record = options.recordRes;
this.logger.info('删除域名解析:', fullRecord, value);
if (!record) {
this.logger.info('record不存在');
@@ -115,9 +107,7 @@ export class CloudflareDnsProvider extends AbstractDnsProvider<CloudflareRecord>
const recordId = record.id;
const url = `https://api.cloudflare.com/client/v4/zones/${zoneId}/dns_records/${recordId}`;
await this.doRequestApi(url, null, 'delete');
this.logger.info(
`删除域名解析成功:fullRecord=${fullRecord},value=${value}`
);
this.logger.info(`删除域名解析成功:fullRecord=${fullRecord},value=${value}`);
}
}

View File

@@ -54,7 +54,7 @@ export class CloudflareDeployToCDNPlugin extends AbstractTaskPlugin {
title: '域名证书',
helper: '请选择前置任务输出的域名证书',
component: {
name: 'pi-output-selector',
name: 'output-selector',
from: ['CertApply', 'CertApplyLego'],
},
required: true,
@@ -66,7 +66,7 @@ export class CloudflareDeployToCDNPlugin extends AbstractTaskPlugin {
title: 'demo授权',
helper: 'demoAccess授权',
component: {
name: 'pi-access-selector',
name: 'access-selector',
type: 'plugins',
},
rules: [{ required: true, message: '此项必填' }],