You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决Excel加载项项目中持续存在的安全证书错误

如何解决Excel加载项项目中持续存在的安全证书错误

我太懂你现在的崩溃了——手动删了所有证书让VS重建、用官方的npm工具生成信任证书,甚至重装Office、新建空白项目都试过,结果Excel还是弹那个“内容被阻止,因为未被有效安全证书签名”的错误,确实离谱。结合你已经完成的操作,咱们再试试几个更针对性的排查和修复步骤:

一、检查Excel依赖的WebView2/IE安全区域设置

Excel加载项依赖WebView2控件运行,而WebView2会继承IE的安全区域规则,很可能是localhost没被加入可信区域导致的:

  • 打开控制面板 > 网络和Internet > Internet选项,切换到「安全」标签页
  • 选中「本地Intranet」,点击「站点」>「高级」,把https://localhost添加到区域列表,确认后退出
  • 再选中「可信站点」,重复上面的步骤把https://localhost也加进去
  • 点击「自定义级别」,临时把「下载未签名的ActiveX控件」设为「提示」(测试后可改回默认)
  • 重启Excel和Visual Studio,再运行项目试试

二、强制让WebView2信任证书

有时候系统信任了证书,但WebView2会单独维护信任列表,需要手动导入:

  • 打开Edge浏览器,访问你的项目HTTPS地址(比如https://localhost:44300,端口号在VS项目属性的「Web>服务器>项目URL」里查看)
  • 如果Edge提示证书不安全,点击地址栏的锁图标,选择「证书」>「安装证书」
  • 导入位置选「本地计算机」,然后选择「受信任的根证书颁发机构」完成导入
  • 刷新Edge页面确认能正常访问https://localhost,再重新运行Excel加载项

三、修正Visual Studio项目的IIS Express证书绑定

VS可能没把新生成的证书正确绑定到项目端口:

  • 关闭VS,找到项目目录下的隐藏文件夹.vs\config\applicationhost.config
  • 打开文件,搜索项目HTTPS端口对应的<bindings>节点,比如:
    <bindings>
      <binding protocol="https" bindingInformation="*:44300:localhost" />
    </bindings>
    
  • 给这个绑定添加证书信息,先通过命令certutil -hashfile C:\Users\Lloyd\.office-addin-dev-certs\localhost.crt SHA1获取证书哈希(去掉输出里的空格)
  • 修改后节点示例:
    <binding protocol="https" bindingInformation="*:44300:localhost" certificateHash="你的证书哈希值" certificateStoreName="My" />
    
  • 保存文件后重新打开VS运行项目

四、重置IIS Express的SSL证书绑定

有时候系统的SSL端口绑定残留了旧证书信息:

  • 以管理员身份打开命令提示符,先删除旧绑定(替换成你的项目端口):
    netsh http delete sslcert ipport=0.0.0.0:44300
    
  • 再用office-addin-dev-certs的证书重新绑定,哈希值用之前获取的:
    netsh http add sslcert ipport=0.0.0.0:44300 certhash=你的证书哈希值 appid={214124cd-d05b-4309-9af9-9caa44b2b74a}
    
  • 重启VS和Excel,再测试项目

五、排查WebView2 Runtime损坏问题

如果以上都没用,可能是WebView2 Runtime本身损坏导致证书验证异常:

  • 卸载当前的WebView2 Runtime(在「设置>应用>应用和功能」里找「Microsoft Edge WebView2 Runtime」)
  • 去微软官网下载最新的WebView2 Evergreen Bootstrapper安装,重启电脑后再运行项目

内容来源于stack exchange

火山引擎 最新活动