如果在此之前一直报服务地域问题,需要切换代理即可
Token exchange failed: Failed to read CA certificate file /opt/homebrew/etc/ca-certificates/cert.pem selected by SSL_CERT_FILE: No such file or directory (os error 2). If you set CODEX_CA_CERTIFICATE or SSL_CERT_FILE, ensure it points to a PEM file containing one or more CERTIFICATE blocks, or unset it to use system roots.
# 退出应用
osascript -e 'tell application "Codex" to quit' 2>/dev/null || true
osascript -e 'tell application "ChatGPT" to quit' 2>/dev/null || true
sleep 2
# 清除当前终端及桌面会话中的错误证书变量
unset CODEX_CA_CERTIFICATE SSL_CERT_FILE
launchctl unsetenv CODEX_CA_CERTIFICATE
launchctl unsetenv SSL_CERT_FILE
# 清理启动配置;修改前自动创建备份
stamp="$(date +%Y%m%d-%H%M%S)"
for f in \
"$HOME/.zshenv" \
"$HOME/.zprofile" \
"$HOME/.zshrc" \
"$HOME/.profile" \
"$HOME/.bash_profile" \
"$HOME/.bashrc"
do
[ -f "$f" ] || continue
if grep -Eq '^[[:space:]]*((export[[:space:]]+)?(CODEX_CA_CERTIFICATE|SSL_CERT_FILE)=|([^[:space:]]*/)?launchctl[[:space:]]+setenv[[:space:]]+(CODEX_CA_CERTIFICATE|SSL_CERT_FILE))' "$f"; then
cp -p "$f" "${f}.codex-ca-backup-${stamp}"
sed -i '' -E '/^[[:space:]]*((export[[:space:]]+)?(CODEX_CA_CERTIFICATE|SSL_CERT_FILE)=|([^[:space:]]*\/)?launchctl[[:space:]]+setenv[[:space:]]+(CODEX_CA_CERTIFICATE|SSL_CERT_FILE))/d' "$f"
echo "已修复:$f"
fi
done
# 验证系统证书能否正常连接
echo "正在测试 HTTPS..."
curl -sS -o /dev/null -w 'HTTPS 状态码:%{http_code}\n' https://auth.openai.com/
# 重新打开应用
if [ -d "/Applications/Codex.app" ] || [ -d "$HOME/Applications/Codex.app" ]; then
open -a "Codex"
elif [ -d "/Applications/ChatGPT.app" ] || [ -d "$HOME/Applications/ChatGPT.app" ]; then
open -a "ChatGPT"
else
echo "修复完成,请手动重新打开桌面应用。"
fi