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

使用Python和WordPress通过XMLRPC时遇到SSL握手失败问题

解决Python XMLRPC连接WordPress SSL握手失败问题

我之前也碰到过一模一样的问题!折腾了好几个小时才搞定,给你几个排查方向试试:

  • 升级Python版本并指定TLS协议
    旧版本Python(比如3.6及以下)的SSL库默认可能不支持WordPress服务器常用的TLS 1.2/1.3版本,这是最常见的原因。你可以先升级Python到3.7+,或者手动在代码里强制指定TLS版本:

    import ssl
    import xmlrpc.client
    
    # 强制使用TLS 1.2(如果服务器支持1.3也可以换成PROTOCOL_TLSv1_3)
    context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
    client = xmlrpc.client.ServerProxy('https://你的WordPress站点地址/xmlrpc.php', context=context)
    
  • 排查SSL证书问题
    如果服务器的SSL证书链不完整,或者是自签名证书(测试环境常见),会导致握手失败。你可以先临时禁用证书验证来排查(生产环境绝对不要这么做!):

    import ssl
    import xmlrpc.client
    
    context = ssl._create_unverified_context()
    client = xmlrpc.client.ServerProxy('https://你的WordPress站点地址/xmlrpc.php', context=context)
    

    如果这样能成功,说明是证书问题,生产环境需要安装完整的证书链,或者让服务器配置正确的证书。

  • 检查WordPress的XMLRPC权限和安全插件
    先确认WordPress后台「设置-撰写」里的「启用XML-RPC发布」是勾选状态。另外很多安全插件(比如Wordfence、iThemes Security)会默认拦截XMLRPC请求,你可以暂时关闭安全插件测试,或者在插件设置里把你的IP加入白名单。

  • 验证服务器SSL配置兼容性
    用openssl s_client -connect 你的站点域名:443命令查看服务器支持的TLS版本和加密套件,确认你的Python客户端支持这些配置。如果服务器禁用了旧协议但客户端默认使用,就会出现握手失败。

按这个顺序一步步排查,大概率能解决问题!

内容的提问来源于stack exchange,提问作者mattblack

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:54:41