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

Bluehost服务器调用Twilio API时SSL证书不匹配问题排查求助

Bluehost服务器调用Twilio API时SSL证书不匹配问题排查求助

我遇到了一个棘手的SSL证书问题,希望能得到大家的帮助:

环境背景

  • 我的服务器是Bluehost的VPS,虽然购买时说是CentOS,但执行cat /etc/redhat-release显示是CloudLinux release 6.10 (Final)
  • 本地Win11/IIS/PHP环境下,调用Twilio API的curl命令完全正常,但到Bluehost服务器上就报错

核心错误信息

执行带verbose参数的curl命令时,出现证书不匹配的错误:

curl: (51) SSL: certificate subject name '*.us-east-1.es.amazonaws.com' does not match target host name 'api.twilio.com'

完整的verbose输出:

* About to connect() to api.twilio.com port 443 (#0)
*   Trying 50.19.189.95... connected
* Connected to api.twilio.com (50.19.189.95) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL: certificate subject name '*.us-east-1.es.amazonaws.com' does not match target host name 'api.twilio.com'
* NSS error -12276
* Closing connection #0
curl: (51) SSL: certificate subject name '*.us-east-1.es.amazonaws.com' does not match target host name 'api.twilio.com'

已尝试的解决步骤(Twilio支持提供)

Twilio支持让我下载他们的SSL证书(通过Chrome导出,命名为cacert.pem),然后执行以下操作:

  • 用SCP/SFTP上传cacert.pem到服务器
  • 复制证书到系统证书目录:sudo cp cacert.pem /etc/pki/tls/certs/
  • 启用并更新CA信任:
    sudo update-ca-trust enable
    sudo update-ca-trust extract
    
  • 验证证书是否加入到CA bundle:cat /etc/pki/tls/certs/ca-bundle.crt(确认内容已包含)
  • 重启Apache

但执行完这些步骤后,问题依然存在,还是返回错误的证书。我问Twilio支持"系统怎么知道该用哪个证书?"但没得到回复。

额外测试结果

  1. 用-k参数跳过证书验证:
    执行curl命令时加上-k,虽然跳过了证书检查,但得到了另一个错误:

    Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header. Authorization=Basic QUNmN***

  2. DNS解析测试(dig命令):

    • 执行dig api.twilio.com,结果显示api.twilio.com最终解析到多个AWS ELB的IP地址(比如34.204.146.75、52.20.98.48等)
    • 执行dig api.twilio.com @8.8.8.8,同样解析到AWS ELB的IP,只是具体地址不同
  3. 指定TLSv1.2的curl测试(11月4日尝试):
    执行指定TLS版本的curl命令:

    curl -v --tlsv1.2 -X POST "https://api.twilio.com/2010-04-01/Accounts/ACf7b58ec793***4d/Messages.json" \
    --data-urlencode "Body=This is the ship that made the Kessel Run in fourteen parsecs?" \
    --data-urlencode "From=+14*****40" \
    --data-urlencode "To=+18*****44" \
    -u ACf7b*****30a4d:0ce7445d*****48bc4d
    

    结果依然报错,只是这次证书变成了*.glympse.com:

    SSL: certificate subject name '*.glympse.com' does not match target host name 'api.twilio.com'
    
  4. openssl测试(11月4日尝试):
    执行openssl s_client -connect api.twilio.com,提示no port defined,然后输出了一堆参数说明。

我是开发人员,但对Linux和证书相关的知识比较陌生,真心希望有人能帮我排查这个问题,谢谢大家!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 10:19:53