Skip to content

Commit ac39ca4

Browse files
committed
new file: python/ch29s04.html
1 parent ca9cfe6 commit ac39ca4

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

python/ch29s04.html

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>29.4. websocket closed due to [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1077)</title><link rel="stylesheet" type="text/css" href="docbook.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="php,pear,pecl,phar, python, , " /><link rel="home" href="index.html" title="Netkiller Python 手札" /><link rel="up" href="faq.html" title="第 29 章 FAQ" /><link rel="prev" href="ch29s03.html" title="29.3. ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device" /></head><body><a xmlns="" href="//www.netkiller.cn/">Home</a> | <a xmlns="" href="//netkiller.github.io/">简体中文</a> | <a xmlns="" href="http://netkiller.sourceforge.net/">繁体中文</a> | <a xmlns="" href="/journal/index.html">杂文</a>
3+
| <a xmlns="" href="https://github.com/netkiller">Github</a> | <a xmlns="" href="https://zhuanlan.zhihu.com/netkiller">知乎专栏</a> | <a xmlns="" href="https://www.facebook.com/bg7nyt">Facebook</a> | <a xmlns="" href="http://cn.linkedin.com/in/netkiller/">Linkedin</a> | <a xmlns="" href="https://www.youtube.com/user/bg7nyt/videos">Youtube</a> | <a xmlns="" href="//www.netkiller.cn/home/donations.html">打赏(Donations)</a> | <a xmlns="" href="//www.netkiller.cn/home/about.html">About</a><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">29.4. websocket closed due to [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1077)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch29s03.html">上一页</a> </td><th width="60%" align="center">第 29 章 FAQ</th><td width="20%" align="right"> </td></tr></table><hr /></div><table xmlns=""><tr><td><iframe src="//ghbtns.com/github-btn.html?user=netkiller&amp;repo=netkiller.github.io&amp;type=watch&amp;count=true&amp;size=large" height="30" width="170" frameborder="0" scrolling="0" style="width:170px; height: 30px;" allowTransparency="true"></iframe></td><td><iframe src="//ghbtns.com/github-btn.html?user=netkiller&amp;repo=netkiller.github.io&amp;type=fork&amp;count=true&amp;size=large" height="30" width="170" frameborder="0" scrolling="0" style="width:170px; height: 30px;" allowTransparency="true"></iframe></td><td><iframe src="//ghbtns.com/github-btn.html?user=netkiller&amp;type=follow&amp;count=true&amp;size=large" height="30" width="240" frameborder="0" scrolling="0" style="width:240px; height: 30px;" allowTransparency="true"></iframe></td><td></td><td><a href="https://zhuanlan.zhihu.com/netkiller"><img src="/images/logo/zhihu-card-default.svg" height="25" /></a></td><td valign="middle"><a href="https://zhuanlan.zhihu.com/netkiller">知乎专栏</a></td><td></td><td></td><td></td><td></td></tr></table><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id6147"></a>29.4. websocket closed due to [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1077)</h2></div></div></div>
4+
5+
<pre class="screen">
6+
7+
(.venv) neo@Mac certifi % pip install --upgrade certifi
8+
Requirement already satisfied: certifi in /Users/neo/tmp/social/.venv/lib/python3.14/site-packages (2026.1.4)
9+
10+
export SSL_CERT_FILE=$(python -c "import certifi; print(certifi.where())")
11+
12+
</pre>
13+
<p>替换证书</p>
14+
<pre class="screen">
15+
16+
(.venv) neo@Mac ~ % python -c "import certifi; print(certifi.where())"
17+
/Users/neo/tmp/social/.venv/lib/python3.14/site-packages/certifi/cacert.pem
18+
(.venv) neo@Mac ~ % cp /Users/neo/tmp/social/.venv/lib/python3.14/site-packages/certifi/cacert.pem /Users/neo/tmp/social/.venv/lib/python3.14/site-packages/certifi/cacert.pem.backup
19+
(.venv) neo@Mac ~ % security find-certificate -a -p &gt; /Users/neo/tmp/social/.venv/lib/python3.14/site-packages/certifi/cacert.pem
20+
21+
</pre>
22+
</div><script xmlns="" type="text/javascript" id="clustrmaps" src="//cdn.clustrmaps.com/map_v2.js?u=r5HG&amp;d=9mi5r_kkDC8uxG8HuY3p4-2qgeeVypAK9vMD-2P6BYM"></script><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch29s03.html">上一页</a> </td><td width="20%" align="center"><a accesskey="u" href="faq.html">上一级</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">29.3. ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device </td><td width="20%" align="center"><a accesskey="h" href="index.html">起始页</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div><script xmlns="">
23+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
24+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
25+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
26+
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
27+
28+
ga('create', 'UA-11694057-1', 'auto');
29+
ga('send', 'pageview');
30+
31+
</script><script xmlns="" async="async">
32+
var _hmt = _hmt || [];
33+
(function() {
34+
var hm = document.createElement("script");
35+
hm.src = "https://hm.baidu.com/hm.js?93967759a51cda79e49bf4e34d0b0f2c";
36+
var s = document.getElementsByTagName("script")[0];
37+
s.parentNode.insertBefore(hm, s);
38+
})();
39+
</script><script xmlns="" async="async">
40+
(function(){
41+
var bp = document.createElement('script');
42+
var curProtocol = window.location.protocol.split(':')[0];
43+
if (curProtocol === 'https') {
44+
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
45+
}
46+
else {
47+
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
48+
}
49+
var s = document.getElementsByTagName("script")[0];
50+
s.parentNode.insertBefore(bp, s);
51+
})();
52+
</script></body></html>

0 commit comments

Comments
 (0)