From a2bbc7e27298821d75a36abac6ec05d86dcf51f4 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sun, 19 Apr 2026 12:23:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=AB=99=E7=82=B9?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E6=9F=90=E4=BA=9B=E6=83=85=E5=86=B5=E4=B8=8B?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=B8=8D=E5=88=B0=E8=AF=81=E4=B9=A6=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/monitor/service/site-tester.ts | 40 +++++++++++++------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/packages/ui/certd-server/src/modules/monitor/service/site-tester.ts b/packages/ui/certd-server/src/modules/monitor/service/site-tester.ts index f7e57b1b8..715289158 100644 --- a/packages/ui/certd-server/src/modules/monitor/service/site-tester.ts +++ b/packages/ui/certd-server/src/modules/monitor/service/site-tester.ts @@ -89,24 +89,38 @@ export class SiteTester { // 创建 HTTPS 请求 const requestPromise = safePromise((resolve, reject) => { const req = https.request(options, res => { - // 获取证书 - // @ts-ignore - const certificate = res.socket.getPeerCertificate(); - // logger.info('证书信息', certificate); - if (certificate.subject == null) { - logger.warn("证书信息为空"); - resolve({ - certificate: null - }); - } - resolve({ - certificate - }); + // // 获取证书 + // // @ts-ignore + // const certificate = res.socket.getPeerCertificate(); + // // logger.info('证书信息', certificate); + // if (certificate.subject == null) { + // logger.warn("证书信息为空"); + // resolve({ + // certificate: null + // }); + // } + // resolve({ + // certificate + // }); res.socket.end(); // 关闭响应 res.destroy(); }); + // ✅ 关键:在 'socket' 事件中获取证书(握手完成后立即执行) + req.on('socket', (socket:any) => { + socket.on('secureConnect', () => { + // TLS握手完成,证书已经可用 + const certificate = socket.getPeerCertificate(); + if (certificate.subject) { + logger.info('证书获取成功', certificate.subject); + resolve({ + certificate + }); + } + }); + }); + req.on("error", e => { reject(e); });