在使用 JetBrains RustRover 通过 Gateway 连接 WSL Fedora 43 时,遇到了无法下载 IDE 后端的问题。错误信息如下:
curl: (60) SSL certificate problem: unable to get local issuer certificate ERROR: The certificate is NOT trusted. The certificate issuer is unknown.问题分析
根本原因
1. 证书重定向问题:JetBrains 下载服务器会根据地理位置将请求重定向到 CDN
- 初始请求https://download.jetbrains.com (证书验证成功)
- 重定向到https://download-cdn.clf.jetbrains.com.cn (中国 CDN,证书验证失败)
2. WSL 与 Windows 证书隔离:Windows 系统安装的根证书不会自动同步到 WSL Linux 发行版
3. 企业网络环境:可能存在 SSL 代理(如 Zscaler)进行 MITM 检查,需要企业自签名证书
排查过程
测试基本连接
# 测试初始连接(成功)
curl -v https://download.jetbrains.com/
# 输出显示证书验证通过,但返回 302 重定向
分析重定向后的连接
# 跟随重定向测试
curl -v -L https://download.jetbrains.com/rustrover/RustRover-2025.2.4.1.tar.gz
# 发现重定向到中国 CDN 后证书验证失败
检查证书链
# 查看 CDN 证书信息
openssl s_client -connect download-cdn.clf.jetbrains.com.cn:443 -showcerts </dev/null
解决方案
如果你的网络环境有企业代理,需要从 Windows 导入企业证书。
Windows 端操作(PowerShell 管理员)
# 创建证书导出目录
$CertDir = "$HOME\Desktop\wsl-certs"
New-Item -ItemType Directory -Force -Path $CertDir
# 导出所有根证书
Get-ChildItem -Path Cert:\LocalMachine\Root\ | ForEach-Object {
$filename = "$CertDir\$($_.FriendlyName -replace '[^a-zA-Z0-9]', '_').cer"
Export-Certificate -Cert $_ -FilePath $filename -Type CERT
}
WSL Fedora 端操作
# 安装 openssl(如果没有)
sudo dnf install -y openssl
# 转换并安装所有 Windows 证书
for cert in /mnt/c/Users/fql/Desktop/wsl-certs/*.cer; do
if [ -f "$cert" ]; then
filename=$(basename "$cert" .cer)
sudo openssl x509 -inform der -in "$cert" \
-out "/etc/pki/ca-trust/source/anchors/$filename.pem" 2>/dev/null || true
fi
done
# 更新证书信任库
sudo update-ca-trust extract
# 验证
curl -v https://download-cdn.clf.jetbrains.com.cn/
验证解决方案
测试 curl 连接
# 测试直接连接
curl -v https://download-cdn.clf.jetbrains.com.cn/
# 测试完整下载流程
curl -fSL -L https://download.jetbrains.com/rustrover/RustRover-2025.2.4.1.tar.gz -o /tmp/test.tar.gz
# 检查下载的文件
ls -lh /tmp/test.tar.gz
测试 JetBrains Gateway
在 RustRover 中重新尝试连接 WSL,Gateway 应该能够成功下载并部署 IDE 后端。
参考资源
环境:
- OS: Windows 11 + WSL 2
- 发行版: Fedora Linux 43
- IDE: JetBrains RustRover 2025.2.4.1