公司防火墙下Win10运行PubNub代码遇UNABLE_TO_GET_ISSUER_CERT_LOCALLY错误求助
解决Windows 10下PubNub的UNABLE_TO_GET_ISSUER_CERT_LOCALLY错误(无法关闭防火墙场景)
我之前帮同事处理过几乎一模一样的问题,公司电脑的防火墙和证书策略确实让人头疼——尤其是没法自己关防火墙的时候。针对这个PubNub的证书错误,给你几个靠谱的解决方向,都是不用动防火墙也能试的:
1. 手动导入PubNub的根证书到Windows证书存储
这是最常见的原因:公司电脑没预装PubNub依赖的根CA证书,导致系统没法验证PubNub服务器的证书合法性。步骤很清晰:
- 先获取根证书:打开浏览器访问PubNub的API域名(比如
ps.pndsn.com),点击地址栏的锁图标→「证书」→「证书路径」,找到最顶层的根证书(一般是DigiCert Global Root CA),选择「导出」,保存为Base64编码的CER格式文件。 - 打开证书管理器:按下Win+R,输入
certmgr.msc回车,找到「受信任的根证书颁发机构」→「证书」文件夹。 - 导入证书:右键该文件夹,选择「所有任务」→「导入」,跟着向导完成刚才导出的CER文件导入。
- 重启你的代码运行环境(比如Node.js、Python解释器),再试运行PubNub代码。
2. 临时禁用证书校验(仅限测试场景!)
如果只是临时测试,不想折腾证书导入,可以在代码里临时关闭证书校验——但千万注意:这是不安全的操作,绝对不能用在生产环境。举两个常用SDK的例子:
- JavaScript SDK:
const pubnub = new PubNub({ publishKey: '你的发布密钥', subscribeKey: '你的订阅密钥', ssl: true, rejectUnauthorized: false // 关闭证书校验 }); - Python SDK:
from pubnub.pubnub import PubNub from pubnub.config import PNConfiguration pnconfig = PNConfiguration() pnconfig.publish_key = '你的发布密钥' pnconfig.subscribe_key = '你的订阅密钥' pnconfig.ssl = True pnconfig.verify_ssl = False # 关闭证书校验 pubnub = PubNub(pnconfig)
3. 检查公司代理的证书拦截问题
很多公司会用代理服务器拦截HTTPS流量,替换成公司自己的证书,这也会导致PubNub的证书校验失败。这种情况得找IT部门要公司代理的根CA证书,然后按照第一点的步骤,把这个根证书导入到「受信任的根证书颁发机构」里,之后PubNub的请求就能通过代理的证书校验了。
4. 升级PubNub SDK到最新稳定版
旧版本的PubNub SDK可能依赖了已经过期的证书,或者证书链配置有问题。试试把你用的SDK升级到最新版:
- Node.js环境:运行
npm update pubnub - Python环境:运行
pip install --upgrade pubnub
内容的提问来源于stack exchange,提问作者Sagar Deshpande
相关产品推荐
相关产品推荐

