urllib3 出现 CertificateError 的原因是由于在进行 HTTPS 通信时,服务端返回的 SSL 证书中的主机名与请求的主机名不匹配。解决方案包括确保主机名匹配和忽略主机名检查,其中可通过设置 urllib3 的 assert_hostname 参数为 False 实现。另外,还介绍了通过设置 REQUESTS_CA_BUNDLE 环境变量来正确使用自定义 CA 证书文件路径。谨慎使用忽略主机名检查方法,在确认服务器证书配置正确的情况下解决证书主机名不匹配问题。