python接口测试SSL证书
时间: 2023-10-07 10:06:18 浏览: 69
Python接口测试中,可以使用requests库来发送HTTPS请求,并且可以通过设置verify参数来指定SSL证书。verify参数可以设置为True、False或者指定证书文件的路径。
如果设置为True,requests会验证SSL证书,如果证书无效会抛出CertificateError异常。
如果设置为False,requests会忽略SSL证书,不会验证证书的有效性,不建议在生产环境中使用。
如果指定证书文件的路径,requests会使用该证书进行验证。
示例代码如下:
```python
import requests
# 验证SSL证书
response = requests.get('https://www.example.com', verify=True)
# 忽略SSL证书
response = requests.get('https://www.example.com', verify=False)
# 指定SSL证书
response = requests.get('https://www.example.com', verify='/path/to/cert.pem')
```
在实际测试中,如果遇到证书无效的情况,可以尝试通过以下方式解决:
1. 获取证书的SHA1指纹,将其添加到requests的信任列表中。
```python
import requests
cert = ('/path/to/cert.pem', '/path/to/key.pem')
# 获取证书的SHA1指纹
import hashlib
fp = open(cert[0], 'rb')
cert_data = fp.read()
fp.close()
finger_print = hashlib.sha1(cert_data).hexdigest()
# 将指纹添加到requests的信任列表中
requests.utils.DEFAULT_CA_BUNDLE_PATHS.append(cert[0])
requests.utils.DEFAULT_CA_BUNDLE_PATHS.append(cert[1])
requests.utils.DEFAULT_CA_BUNDLE_PATHS.append(finger_print)
# 发送HTTPS请求
response = requests.get('https://www.example.com', cert=cert)
```
2. 禁用证书验证。
```python
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
# 禁用证书验证
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
# 发送HTTPS请求
response = requests.get('https://www.example.com', verify=False)
```