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

WSL2(Ubuntu)环境下为Ddev Composer配置自定义SSL证书文件的位置咨询

WSL2(Ubuntu)环境下为Ddev Composer配置自定义SSL证书文件的位置咨询

我完全理解你现在的困扰——在WSL2 Ubuntu环境里跟着Ddev的Drupal操作指南走,结果用ddev composer create drupal/recommended-project下载依赖时碰到了SSL证书链错误,好在你已经有了能解决问题的.cer证书,就差找对放置和配置它的位置对吧?

下面给你梳理几个可行的方案,你可以根据需求选择:

方案1:直接给Composer全局配置该证书

这是最直接针对Composer的方法,不管是本地还是Ddev里调用的Composer都会生效:
运行这条命令,把你的证书路径设置为Composer全局信任的CA文件:

composer config -g cafile /home/snrub/mycert-base64.cer

配置完成后,重新运行你的Ddev Composer命令,应该就能绕过证书错误了。

方案2:将证书添加到系统信任列表(全局生效)

如果希望整个WSL2系统(包括Ddev容器内的环境)都信任这个证书,可以按以下步骤操作:

  • 先把你的证书文件复制到系统证书目录,注意要把.cer后缀改成.crt(Ubuntu证书目录要求这个格式):
    sudo cp /home/snrub/mycert-base64.cer /usr/local/share/ca-certificates/mycert-base64.crt
    
  • 然后更新系统的证书缓存:
    sudo update-ca-certificates
    
  • 最后重启Ddev容器让配置生效:ddev restart,之后容器内的环境也会继承系统的信任证书,再运行Composer命令就没问题了。

方案3:仅针对单个Ddev项目配置

如果你只想让某个Ddev项目使用这个证书,可以修改项目的Ddev配置文件:

  1. 把证书放到项目目录下的.ddev/certs/文件夹里(如果没有这个文件夹就新建一个)
  2. 打开项目根目录下的.ddev/config.yaml,添加以下配置指定CA文件路径:
    web_environment:
      - SSL_CERT_FILE=/var/www/html/.ddev/certs/mycert-base64.cer
    
  3. 保存后重启Ddev容器:ddev restart,再执行Composer命令即可。

补充验证

你之前用openssl测试的结果已经证明证书是有效的,配置完成后可以再用ddev exec openssl s_client -connect api.github.com:443测试一下,看是否还会出现证书错误,以此验证配置是否生效。

你的原错误信息和测试命令如下:

执行Composer命令时的错误输出:

➜  my-drupal10-site2 ddev composer create drupal/recommended-project
Executing Composer command: [composer create-project drupal/recommended-project --no-install /tmp/hwdqJW]

Creating a "drupal/recommended-project" project at "/tmp/hwdqJW"
Installing drupal/recommended-project (10.2.4)
  - Downloading drupal/recommended-project (10.2.4)
  - Downloading drupal/recommended-project (10.2.4)
  - Downloading drupal/recommended-project (10.2.4)
  - Downloading drupal/recommended-project (10.2.4)
    Failed to download drupal/recommended-project from dist: curl error 60 while downloading https://api.github.com/repos/drupal/recommended-project/zipball/b4d1be6b9682e27a6adc430ad08a14745d0b67ff: SSL certificate problem: self signed certificate in certificate chain
Now trying to download from source

你测试证书的有效命令:

openssl s_client -connect api.github.com:443 -CAfile /home/snrub/mycert-base64.cer 

未指定证书时的失败命令:

openssl s_client -connect api.github.com:443

备注:内容来源于stack exchange,提问作者MrSnrub

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:59:33