You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过浏览器扩展读取网站证书的公钥?

能否通过JavaScript(或浏览器扩展)读取网站证书的公钥?
  • 普通网页内的JavaScript:不行。浏览器出于安全限制,不会让普通页面的JS直接访问当前网站的SSL/TLS证书信息,这是同源策略和浏览器安全模型的一部分,防止敏感证书数据被恶意脚本滥用。

  • 浏览器扩展(拥有对应权限的情况下):可以实现。浏览器为扩展开放了专门的网络监控API,能从中获取证书详情。

以Chrome扩展为例,你需要先在manifest.json中声明必要权限:

{
  "manifest_version": 3,
  "name": "证书公钥读取工具",
  "permissions": ["webRequest"],
  "host_permissions": ["<all_urls>"],
  "background": {
    "service_worker": "background.js"
  }
}

接着在background.js里监听网络请求事件,提取并解析证书公钥:

chrome.webRequest.onHeadersReceived.addListener(
  (details) => {
    if (details.certificate) {
      const cert = new window.X509Certificate(details.certificate);
      const publicKey = cert.publicKey;
      console.log("网站证书公钥:", publicKey);
      // 可进一步将公钥转为PEM等格式使用
    }
  },
  { urls: ["<all_urls>"] },
  ["responseHeaders", "blocking", "extraHeaders"]
);

Firefox扩展的实现逻辑类似,使用browser.webRequestAPI即可,核心都是通过扩展的网络监听权限拿到证书对象,再提取公钥字段。需要注意不同浏览器的证书API细节可能略有差异,需根据目标浏览器做适配。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:05:18