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

pkgdown::deploy_to_branch()执行报SSL证书验证失败问题求助

问题描述

我长期使用pkgdown::deploy_to_branch()将文档发布到代码仓库的gh-pages分支,本周该功能突然失效,抛出如下错误:

Error: callr subprocess failed: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Type .Last.error.trace to see where the error occurred 
7.
stop(cond) at errors.R#275
6.
throw(newerr, parent = remerr[[2]]) at result.R#70
5.
get_result(output = out, options) at eval.R#176
4.
callr::r(function(..., crayon_enabled, crayon_colors, pkgdown_internet) {
    options(crayon.enabled = crayon_enabled, crayon.colors = crayon_colors, 
        pkgdown.internet = pkgdown_internet)
    pkgdown::build_site(...) ... at build.r#432
3.
build_site_external(pkg = pkg, examples = examples, run_dont_run = run_dont_run, 
    seed = seed, lazy = lazy, override = override, preview = preview, 
    devel = devel) at build.r#385
2.
build_site(pkg, devel = FALSE, preview = FALSE, install = FALSE, 
    ...) at deploy-site.R#172
1.
pkgdown::deploy_to_branch() 

深入调试后发现,直接调用build_site()也会抛出错误,调用栈如下:
build_site() stack trace

补充说明:GitHub身份验证在其他场景均正常,仓库通过SSH克隆,手动操作或RStudio GUI中可以正常推拉代码,未修改过此前正常运行的相关配置。已排查过同类报错相关内容,均不符合“除pkgdown调用外Git功能均正常”的场景。

运行环境信息

  • 系统:Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-1054-aws x86_64)
  • R版本:4.0.3
  • pkgdown版本:1.6.1
  • 问题可在两个不同代码仓库复现,两个仓库此前都可以正常执行该命令。

问题原因

核心触发原因

  • 系统CA证书包过时。Ubuntu 18.04版本默认预装的CA证书库中,已过期的Let's Encrypt DST Root CA X3根证书未被自动移除,新的ISRG Root X1根证书未正确加载,访问使用Let's Encrypt签发证书的HTTPS站点时会触发验证失败。日常操作Git使用SSH协议,不涉及HTTPS证书校验,因此不受影响。
  • pkgdown构建逻辑触发HTTPS请求。pkgdown 1.6.1版本执行build_site时,会自动拉取远程主题资源、校验文档外部链接、拉取仓库元数据,这类请求默认走HTTPS协议,会触发系统CA证书校验。
  • callr子进程未继承自定义配置。pkgdown调用callr启动独立子进程执行构建任务时,未继承当前用户自定义的Git SSL配置,导致即使全局Git配置了正确的证书路径,子进程也无法读取,触发校验失败。
解决方案
  1. 优先更新系统CA证书包,执行命令:
    sudo apt update && sudo apt install --only-upgrade ca-certificates
    更新完成后重新运行pkgdown命令测试即可。
  2. 若更新证书后仍报错,可临时关闭当前仓库的Git SSL校验用于测试(测试完成后建议立即改回默认配置,避免安全风险):
    git config http.sslVerify false
  3. 升级pkgdown到最新版本,新版本优化了资源拉取逻辑和证书校验适配,对老系统的兼容性更好。
辅助排查信息

如需进一步定位问题,可提供以下信息:

  • 执行curl -I https://github.com的返回结果,确认系统层面HTTPS访问GitHub是否正常
  • 执行git config --list | grep ssl的输出,确认当前Git的SSL相关配置
  • 执行update-ca-certificates --list | grep ISRG的输出,确认系统是否已安装ISRG Root X1根证书

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:39:02