玖叶教程网

前端编程开发入门

通过 Python 简单认识SSH证书(python ssh2)

SSH证书

一、什么是SSL证书? 如何检查网站是否部署了SSL证书?

如果你能使用 https:// 来访问某个网站,就表示此网站是部署了SSL证书。一般来讲, 如果此网站部署了SSL证书,则在需要加密的页面会自动从 http:// 变为 https://如果没有变,你认为此页面应该加密,你也可以尝试直接手动在浏览器地址栏的http后面加上一个英文字母“ s ”后回车, 如果能正常访问并出现安全锁,则表明此网站实际上是部署了SSL证书,只是此页面没有做 https:// 链接; 如果不能访问,则表明此网站没有部署 SSL证书

请注意:有些部署了 SSL证书的网站会有不安全因素警告表明此页面中含有指向其他没有部署 SSL证书的页面,为了安全起见,建议您选择“否”,浏览器就不显示不安全的内容, 这些内容一般都是Flash动画或 Java Script ,如果选择“是”,则浏览器不会显示安全锁标志

什么是 SSL证书?

SSL证书就是遵守 SSL安全套接层协议的服务器数字证书

而 SSL安全协议最初是由美国网景Netscape Communication公司设计开发的,全称为: 安全套接层协议(Secure Sockets Layer)

它指定了在应用程序协议(如 HTTP 、 Telnet 、 FTP) 和 TCP/IP 之间提供数据安全性分层的机制,它是在传输通信协议 (TCP/IP) 上实现的一种安全协议,采用公开密钥技术,它为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证由于此协议很好地解决了互联网明文传输的不安全问题,很快得到了业界的支持,并已经成为国际标准

SSL证书由浏览器中“受信任的根证书颁发机构”在验证服务器身份后颁发,具有网站身份验证和加密传输双重功能

请注意:如果SSL证书不是由浏览器中“受信任的根证书颁发机构”颁发的,则浏览器会有安全警告安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据,建议关闭此网页,并且不要继续浏览该网站


二、处理HTTPS请求 SSL证书验证

现在随处可见 https开头的网站,urllib3可以为 HTTPS请求验证SSL证书,requests模块同样也可以进行是否验证证书的设置, 就像web浏览器一样,如果网站的SSL证书是经过CA认证的,则能够正常访问,如:https://www.baidu.com/等… 如果SSL证书验证不通过,或者操作系统不信任服务器的安全证书, 比如浏览器在访问12306网站如:https://www.12306.cn/mormhweb/的时候,会警告用户证书不受信任。 (据说 12306 网站证书是自己做的,没有通过CA认证)

所以,如果以后遇到这种网站,我们需要单独处理SSL证书,让程序忽略SSL证书验证错误,即可正常访问。 编写程序:

urllib库忽略方式:

import urllib
# 1. 导入Python SSL处理模块
import ssl

# 2. 表示忽略未经核实的SSL证书认证
context = ssl._create_unverified_context()

url = "https://www.12306.cn/mormhweb/"

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

request = urllib.request.Request(url, headers = headers)

# 3. 在urlopen()方法里 指明添加 context 参数
response = urllib.request.urlopen(request, context = context)

print (response.read().decode())


requests忽略方式:

import requests
url = 'https://www.12306.cn/'
res = requests.get(url, verify= False)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言