在cloudflare上部署IP6.ARPA域名自动添加SSL证书export default { async fetch(request, env, ctx) { const url = new URL(request.url); // 处理 API 请求：支持 POST (/api/add-ssl) 和 GET (/?...) if ( (url.pathname === '/api/add-ssl' && request.method === 'POST') || (url.pathname === '/' && request.method === 'GET' && url.searchParams.has('zoneId')) ) { return handleApiRequest(request, url.searchParams); } // 返回 HTML 页面 (仅当是根路径的 GET 请求且没有API参数时) return new Response(getHTML(), { headers: { 'Content-Type': 'text/html; charset=utf-8', }, }); }, }; // 统一处理 API 请求（支持 POST Body 和 GET Query Params） async function handleApiRequest(request, queryParams) { let email, zone_id, api_key, enabled, certificate_authority; try { if (request.method === 'POST') { // POST 请求：从请求体中解析 JSON const body = await request.json(); email = body.email; zone_id = body.zoneId; api_key = body.apikey; enabled = body.enabled !== undefined ? body.enabled : true; certificate_authority = body.ca || "ssl_com"; } else if (request.method === 'GET') { // GET 请求：从 URL 查询参数中获取 email = queryParams.get('email'); zone_id = queryParams.get('zoneId'); api_key = queryParams.get('apikey'); enabled = !(queryParams.get('enabled') === 'false'); certificate_authority = queryParams.get('ca') || "ssl_com"; } // 验证必需的输入 if (!email || !zone_id || !api_key) { return new Response(JSON.stringify({ success: false, errors: ['邮箱、区域ID和API密钥都是必需的'] }), { status: 400, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', } }); } // 验证并设置 CA 默认值 const validCAs = ["ssl_com", "lets_encrypt", "google", "sectigo"]; const caToUse = validCAs.includes(certificate_authority) ? certificate_authority : "ssl_com"; // 调用 Cloudflare API const response = await fetch(`https://api.cloudflare.com/client/v4/zones/${zone_id}/ssl/universal/settings`, { method: 'PATCH', headers: { 'X-Auth-Email': email, 'X-Auth-Key': api_key, 'Content-Type': 'application/json', }, body: JSON.stringify({ enabled: enabled, certificate_authority: caToUse }), }); const result = await response.json(); // 为 API 调用返回 JSON 响应 return new Response(JSON.stringify(result), { headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST', 'Access-Control-Allow-Headers': 'Content-Type', }, }); } catch (error) { return new Response(JSON.stringify({ success: false, errors: [{ message: `请求失败: ${error.message || '未知错误'}` }] }), { status: 500, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', } }); } } // getHTML 函数保持不变，因为前端表单仍然使用 POST 请求 function getHTML() { return ` IP6.ARPA域名自动添加SSL证书 IP6.ARPA域名自动添加SSL证书 ip6.arpa 注册地址1(已崩) ip6.arpa 注册地址2 ip6.arpa 注册地址3 Cloudflare注册邮箱 (Email) 请输入有效的邮箱地址 区域ID (Zone ID) 请输入区域ID 全局API密钥 (API Key) 请输入API密钥 CA证书颁发机构 SSL.com (默认) Let's Encrypt Google Trust Services Sectigo 添加 SSL 证书 IP6.ARPA 域名生成工具 输入 IPv6 CIDR 地址 请输入有效的 IPv6 CIDR 生成 IP6.ARPA 域名 IP6.ARPA 域名生成结果 API GET 调用示例 证书颁发机构 (ca) 支持：ssl_com、lets_encrypt、google、sectigo。注意：ip6.arpa 域名通常仅支持 ssl_com。 https://worker地址/?zoneId=...&email=...&apikey=...&enabled=true&ca=ssl_com Copyright 2025 | GitHub源代码 | telegram群组 此站点中api key仅用于请求,不记录,如有疑问,可自行在cloudflare workers部署 `; }