
本文介绍在本地开发环境中调用 DeepL PHP SDK 时遇到 SSL certificate problem: self signed certificate in certificate chain 错误的根本原因与专业解决方案,重点涵盖 CA 证书配置、cURL 安全设置及替代调试策略。
本文介绍在本地开发环境中调用 deepl php sdk 时遇到 `ssl certificate problem: self signed certificate in certificate chain` 错误的根本原因与专业解决方案,重点涵盖 ca 证书配置、curl 安全设置及替代调试策略。
DeepL 官方 PHP SDK 基于 cURL 发起 HTTPS 请求,默认启用严格的 TLS 验证。当你在本地(如 Windows XAMPP、macOS MAMP 或自建 PHP 环境)运行代码时,若 PHP 未正确配置可信根证书(CA bundle),cURL 将拒绝验证 DeepL 的有效 SSL 证书链,从而抛出 DeepL\ConnectionException: SSL certificate problem: self signed certificate in certificate chain —— 注意:该错误并非 DeepL 服务端问题,而是本地 TLS 信任链缺失所致。
✅ 正确解决方案(推荐)
1. 下载并配置最新 CA 证书包
前往 cURL 官方 CA 证书仓库 下载 cacert.pem(建议使用最新版)。将其保存至项目目录(如 ./certs/cacert.pem)或系统级路径(如 /usr/local/etc/openssl/cert.pem)。
2. 配置 PHP 的 openssl.cafile(永久生效)
在 php.ini 中添加或修改以下行(路径需替换为实际位置):
openssl.cafile="/path/to/your/certs/cacert.pem"
重启 Web 服务器(如 Apache/Nginx)或 PHP-FPM 后生效。
3. 或通过 SDK 自定义 cURL 选项(临时/项目级控制)
DeepL PHP SDK 支持传入自定义 HttpClient。使用 GuzzleHttp\Client 可显式指定 CA 文件:
<?php require __DIR__ . '/vendor/autoload.php';
use DeepL\Translator;
use GuzzleHttp\Client;
$authKey = 'YOUR_DEEPL_AUTH_KEY';
$client = new Client([
'verify' => __DIR__ . '/certs/cacert.pem', // ✅ 关键:指向你的 CA bundle
]);
$translator = new Translator($authKey, ['httpClient' => $client]);
$result = $translator->translateText('Hello, world!', null, 'fr');
echo $result->text; // 输出:Bonjour, le monde!
⚠️ 严禁生产环境禁用 SSL 验证!
不要使用curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false)或verify: false—— 这将导致中间人攻击风险,仅限学习演示,且 DeepL SDK 不直接暴露此底层选项。
? 验证是否修复
执行以下命令检查 PHP 是否识别 CA 文件:
php -r "print_r(openssl_get_cert_locations());"
确认 default_cert_file 指向你配置的 cacert.pem 路径。
? 补充建议
-
使用 Composer 包
certifi/php-certifi可自动管理 CA 证书:composer require certifi/php-certifi
然后在代码中引用:
$client = new Client(['verify' => \Certifi\PHP\Certifi::getBundle()]);
若仍失败,请检查本地代理/防火墙是否注入了自签名中间证书(如 Fiddler、Charles),临时关闭此类工具再试。
通过以上配置,你即可在本地安全、可靠地集成与测试 DeepL 翻译功能,无需妥协安全性,也无需等待部署到线上环境。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











