Python - 禁用“SecurityWarning: Certificate has no `subjectAltName`,RFC 2818”警告

12
我正在尝试抑制以下警告:

我正在尝试抑制以下警告:

/usr/lib/python2.7/site-packages/urllib3/connection.py:251: SecurityWarning: Certificate has no `subjectAltName`, falling back to check for a `commonName` for now. This feature is being removed by major browsers and deprecated by RFC 2818. (See https://github.com/shazow/urllib3/issues/497 for details.)
  SecurityWarning

我的代码如下

import requests
from orionsdk import SwisClient

#solarwinds creds
hostname = 'SolarWinds-Orion'
username = 'api'
password = 'XXXX'
v_path = '/var/www/itapp/tools/solarwinds.pem'

sites = SiteData.objects.exclude(site_type='Major Site').filter(is_live=True)
swis = SwisClient(hostname, username, password, verify=v_path)

query = """
    SELECT NodeID
          ,NodeName
          ,IPAddress
    FROM Orion.Nodes 
    WHERE NodeName LIKE '%NVR'
"""
requests.packages.urllib3.disable_warnings()
existing_results = swis.query(query)
nodes = existing_results["results"]
如果我使用requests.packages.urllib3.disable_warnings(),则应该可以消除警告,但是无论我把这行代码放在哪里,我总是收到警告消息。我是否遗漏了些什么或需要使用其他方法?谢谢。
1个回答

19

嗯,如果我没记错的话,requests使用自己的vendored urllib3副本,但你收到的警告来自于你安装的urllib3副本。

尝试执行以下操作:

import urllib3
urllib3.disable_warnings(urllib3.exceptions.SecurityWarning)

你也可以像这样处理由warnings python库生成的任何类型的警告:

import warnings
warnings.simplefilter('ignore', urllib3.exceptions.SecurityWarning)

10
禁用通用的“SecurityWarning”将同时抑制所有其他安全警告。如果您只想抑制问题中明确要求的警告(或任何其他特定的警告),请使用以下代码:urllib3.disable_warnings(urllib3.exceptions.SubjectAltNameWarning) - Dirk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接