- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这不是 this post 的副本.我尝试了那里的解决方案,但在我的情况下没有任何效果。
我正在使用 Windows 和 Python 3.6.5。我有一个用于 TLS 客户端的 python 脚本。我需要连接的服务器使用自签名证书。当我尝试使用我的脚本连接到它时,出现此错误:
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)
我需要解析证书。我尝试将服务器的证书 .pem
内容添加到名为 cacert.pem
的文件中,该文件位于:C:\Python36\Lib\site-packages\certifi
并再次运行程序。没变化。这是我的脚本。请帮助我让客户端对此服务器进行异常(exception)处理,因为我信任它的证书。
import socket, ssl
import itertools
context = ssl.SSLContext()
context.verify_mode = ssl.CERT_OPTIONAL
context.check_hostname = False
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
domain="192.168.56.3" # my server
ssl_sock = context.wrap_socket(s, server_hostname=domain)
ssl_sock.connect((domain, 443))
print("====== peer's certificate ======")
try:
cert = ssl_sock.getpeercert()
print(cert)
except SSLError as e:
print("Error: ",e)
ssl_sock.close()
最佳答案
这个问题已经闲置了一段时间,但如果有人仍在努力通过 Python ssl
库连接到具有自签名证书的服务器:
您可以使用SSLContext
的load_verify_locations
方法来指定自定义自签名根证书(参见Python Docs for load_verify_locations)。
上述代码可以扩展如下:
...
context = ssl.SSLContext()
context.verify_mode = ssl.CERT_OPTIONAL
context.check_hostname = False
context.load_verify_locations(cafile='/path/to/your/cacert.pem')
...
请注意,您还需要包含公共(public)根证书,以防您想要使用具有相同客户端/上下文的公共(public)证书连接到其他服务器。 (例如,您可以将 cacert.pem
内容附加到 certifi 根证书并改为引用该文件夹/路径)。
另请参阅此 Python 文档段落以获取更多信息:client-side operations .
关于python - 如何让 python 信任我服务器的 TLS 自签名证书 : ssl. SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50058209/
您好,我正在尝试通过执行从表存储帐户查询数据的 python 脚本来开始 Azure ML 算法。我用这个来做: entities_Azure=table_session.query_entities
我有一个运行 omniauth-facebook 和 omniauth-twitter 的 Rails 4 应用程序,但所有登录尝试都会遇到 Faraday::SSLError -- SSL_conn
我在 python 中使用一个包,我试图通过简单的打印访问方法我想出了这个错误 ConnectionError: HTTPSConnectionPool(host='xxx.xxxxx.xxx', p
import sslcontext = ssl.create_default_context()context.load_cert_chain('cert.pem', 'key.pem') B
尝试使用 the SnapWrap library 时我遇到过这个错误: File "/usr/local/lib/python2.7/dist-packages/requests-2.7.0-p
我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它很棒!但是,CAS 需要通过 SSL 进行验证,所以我必须
我有一个带有 letsencrypt 证书的 python3 django 网站 一切正常,除了使用 python 请求到本地地址: response = requests.post('http://
我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它很棒!但是,CAS 需要通过 SSL 进行验证,所以我必须
尝试使用 Requests session 发出简单的获取请求,但我不断收到特定站点的 SSLerror。我认为问题可能出在网站上(我使用 https://www.ssllabs.com 进行了扫描,
我正在尝试通过 python 向 iPhone 发送推送通知,如 here 所述但我收到以下错误: Traceback (most recent call last): File "", line
我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它是一项很棒的工作!但是,CAS 需要通过 SSL 进行验证
这是我检查链接的功能。但是当链接是假的时它会抛出一个错误。例如,它适用于 twitter.com 但不适用于 twitt.com。 class Quality_Check: def check
我正在分析加密货币市场数据并使用某些交易所的公共(public) API。该程序每隔几秒发出一次 HTTPS 请求。奇怪的是,它恰好发出了 336 个请求,而在 337 个请求上它总是失败: /.rb
我正在尝试开始使用 PRAW,但在使用 login() 时遇到问题。 我有以下代码: import praw r = praw.Reddit('This is a test bot') r.login
我想使用从服务器生成的证书从我的客户端向服务器进行身份验证。我有一个 server-ca.crt,下面是正在运行的 CURL 命令。如何使用 python 请求模块发送类似的请求。 $ curl -X
我正在使用带有以下代码的 authlib: session = OAuth2Session(client_id, client_secret) token = session.fetch_access
我想使用从服务器生成的证书从我的客户端向服务器进行身份验证。我有一个 server-ca.crt,下面是正在运行的 CURL 命令。如何使用 python 请求模块发送类似的请求。 $ curl -X
当我尝试执行“conda update conda”时,我遇到了这个错误: 请你帮帮我! 最佳答案 如果您在防火墙或代理后面,您可能必须在您的 condarc 中将 ssl_verify 设置为 fa
我有包含 4 行的 fiddle.py import requests url = "https://randomuser.me/api/" locations = requests.get(url,
我不能在 Python 中使用不同的代理。 我的代码: import requests proxies = { "https":'https://154.16.202.22:3128',
我是一名优秀的程序员,十分优秀!