Windows+WSL+Ubuntu环境下Pgadmin抛出SSL错误及更新检查异常如何解决
PgAdmin 4 v6 SSL证书验证失败报错解决方案
错误原因
该报错来自pgAdmin的自动版本更新检查逻辑,请求官方更新接口时SSL证书过期导致验证失败,属于pgAdmin v6版本的已知问题,不会影响数据库连接、库表操作等核心功能。
可执行解决方案
方案1:关闭自动更新检查(最推荐,无副作用)
- 进入pgAdmin安装路径下的web目录,找到配置文件
config.py,默认路径为:C:\Program Files\pgAdmin 4\v6\web\config.py - 找到参数
UPGRADE_CHECK_ENABLED,将默认值True修改为False - 保存配置文件后,重启pgAdmin即可消除报错
方案2:保留更新检查,跳过SSL验证
如果需要保留自动更新功能,可以在config.py中新增如下配置,跳过更新请求的SSL验证:
UPGRADE_CHECK_SSL_VERIFY = False
注意:该配置仅适合本地自用场景,生产环境部署不推荐使用。
WSL环境适配说明
该报错仅出现在Windows端运行的pgAdmin客户端,和WSL内运行的PostgreSQL服务、WSL网络配置无关联,修改配置后不会影响连接WSL内的PostgreSQL实例、创建数据库等核心操作。
完整报错日志
pgAdmin Runtime Environment -------------------------------------------------------- Python Path: "C:\Program Files\pgAdmin 4\v6\python\python.exe" Runtime Config File: "C:\Users\srish\AppData\Roaming\pgadmin\runtime_config.json" pgAdmin Config File: "C:\Program Files\pgAdmin 4\v6\web\config.py" Webapp Path: "C:\Program Files\pgAdmin 4\v6\web\pgAdmin4.py" pgAdmin Command: "C:\Program Files\pgAdmin 4\v6\python\python.exe -s C:\Program Files\pgAdmin 4\v6\web\pgAdmin4.py" Environment: - ALLUSERSPROFILE: C:\ProgramData ... ... - windir: C:\WINDOWS -------------------------------------------------------- 2021-12-01 13:39:57,433: WARNING werkzeug: WebSocket transport not available. Install simple-websocket for improved performance. * Serving Flask app "pgadmin" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off Application Server URL: http://127.0.0.1:5431/?key=c1258d56-07d4-4046-a1f2-0f52769030d6 2021-12-01 13:40:00,407: ERROR pgadmin: Exception when checking for update Traceback (most recent call last): File "urllib\request.py", line 1354, in do_open File "http\client.py", line 1252, in request File "http\client.py", line 1298, in _send_request File "http\client.py", line 1247, in endheaders File "http\client.py", line 1007, in _send_output File "http\client.py", line 947, in send File "http\client.py", line 1421, in connect File "ssl.py", line 500, in wrap_socket File "ssl.py", line 1040, in _create File "ssl.py", line 1309, in do_handshake ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1131) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files\pgAdmin 4\v6\web\pgadmin\browser\__init__.py", line 670, in check_browser_upgrade response = urlopen(url, data, 5) File "urllib\request.py", line 222, in urlopen File "urllib\request.py", line 525, in open File "urllib\request.py", line 542, in _open File "urllib\request.py", line 502, in _call_chain File "urllib\request.py", line 1397, in https_open File "urllib\request.py", line 1357, in do_open urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1131)>
内容的提问来源于stack exchange,提问作者Singh
相关产品推荐
相关产品推荐

