作者:临海小少年 | 来源:互联网 | 2023-07-29 11:42
一、什么是 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 证书不是由浏览器中“受信任的根证书颁发机构”颁发的,则浏览器会有安全警告,如图 2 所示为 IE7 浏览器的警告信息为“此网站出具的安全证书不是受信任的证书颁发机构颁发的,安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据,建议关闭此网页,并且不要继续浏览该网站。
二、处理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证书验证错误,即可正常访问。
编写程序:
ssl免验证
或者在requests模块中:
三、关于CA
CA(Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的受信任的第三方机构,如北京数字认证股份有限公司、上海市数字证书认证中心有限公司等…
CA的作用是检查证书持有者身份的合法性,并签发证书,以防证书被伪造或篡改,以及对证书和密钥进行管理。
现实生活中可以用身份证来证明身份, 那么在网络世界里,数字证书就是身份证。和现实生活不同的是,并不是每个上网的用户都有数字证书的,往往只有当一个人需要证明自己的身份的时候才需要用到数字证书。
普通用户一般是不需要,因为网站并不关心是谁访问了网站,现在的网站只关心流量。但是反过来,网站就需要证明自己的身份了。
比如说现在钓鱼网站很多的,比如你想访问的是www.baidu.com,但其实你访问的是www.daibu.com”,所以在提交自己的隐私信息之前需要验证一下网站的身份,要求网站出示数字证书。
一般正常的网站都会主动出示自己的数字证书,来确保客户端和网站服务器之间的通信数据是加密安全的。
所以,如果以后遇到这种网站,我们需要单独处理SSL证书,让程序忽略SSL证书验证错误,即可正常访问。
编写程序:
ssl免验证
或者在requests模块中: