导航:首页 > 编程语言 > python获取https证书

python获取https证书

发布时间:2022-05-11 13:21:38

㈠ 如何用 python 解析 ssl 证书文件

PyOpenSSL

OpenSSL.SSL.Connection()
get_peer_certificate()
get_peer_cert_chain()

㈡ Python 爬取https的登录界面,怎么爬取成功,谢谢

之前写的一直没成功,原因是用的不是HTTPS相关的函数。这次仔细研究了一下,有几个需要注意的点,一个是POST模拟登陆的时候,header中的cookie值,不同的网站应该会有不同的要求;另一个是GET页面的时候,是需要加上POST得到的response中的set-cookie的。这样才能利用登陆的成功。

写完POST和GET页面后,顺便写了个简单的命令行实现。

importhttplib,urllib
importurllib2
importcookielib
importsys

file_text="build_change.txt"
resultTable=dict()
host='buuuuuuu.knight.com'

defLogin(username,password,csrf=''):
url='/login/'
values={
'username':username,
'password':password,
'next':'',
'csrfmiddlewaretoken':csrf,
}

headers={
'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/35.0.1916.114Safari/537.36',
'Content-Type':'application/x-www-form-urlencoded',
'Connection':'keep-alive',
'Cookie':'csrftoken=%s'%csrf,
'Referer':'https://buuuuuuu.knight.com/login/',
'Origin':'https://buuuuuuu.knight.com',
'Content-Type':'application/x-www-form-urlencoded',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
}
values=urllib.urlencode(values)
conn=httplib.HTTPSConnection(host,443)
conn.request("POST",url,values,headers)
response=conn.getresponse()
print'Login:',response.status,response.reason
'''
hdata=response.getheaders()
foriinxrange(len(hdata)):
forjinxrange(len(hdata[i])):
printhdata[i][j],
print
'''
returnresponse.getheader("set-cookie")


defGetHtml(_url,cookie):
get_headers={
'Host':'xxxxx.knight.com',
'Connection':'keep-alive',
'Cache-Control':'max-age=0',
'Cookie':cookie,
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/35.0.1916.114Safari/537.36',
'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
}
conn=httplib.HTTPSConnection(host)
conn.request("GET",_url,None,get_headers)
res2=conn.getresponse()
print"Get%s:"%_url,res2.status,res2.reason
'''
hdata1=res2.getheaders()
foriinxrange(len(hdata1)):
forjinxrange(len(hdata1[i])):
printhdata1[i][j],
print
'''
data=res2.read()
fp=open("build_change.txt","w")
fp.write(data)
fp.close()


defParseHtml():
fp=open(file_text,"r")
content=fp.readline()
_pos=0
whilecontent:
ifcontent.find("class="change-body"")>=0:
topic=content.split(">")
resultTable[_pos]=topic[1]
whilecontent:
content=fp.readline()
resultTable[_pos]=resultTable[_pos]+content
ifcontent.find("</div>")>=0:
_pos=_pos+1
break
content=fp.readline()
fp.close()
print"Parsehtmlsuccess."


defGenerateResultTxt():
f=open("build_change_result.txt","w")
forminresultTable.keys():
f.write("------------------------------------------------------------------------------------------- ")
f.write(resultTable[m])
f.close()
print"Generateresultsuccess:build_change_result.txt."
defHelp():
print'-h:help'
print'-u:username(must)'
print'-p:password(must)'
print'-c:csrftoken(optional)'
print'-s:sandboxbuildid(must)'
print'Forexample:'
print'[1]pythonBuildChange.py-h'
print'[2]pythonBuildChang.py-uu-pp-ss1s2'
print'[3]pythonBuildChang.py-uu-pp-cc-ss1s2'


defParseParam(com):
length=len(com)
username=""
password=""
csrf=""
sid1=""
sid2=""
iflength==2orlength==8orlength==10:
ifcom[1]=='-h':
Help()
foriinrange(1,length):
ifcom[i]=='-u'andi<(length-1):
username=com[i+1]
i+=1
elifcom[i]=='-p'andi<(length-1):
password=com[i+1]
i+=1
elifcom[i]=='-c'andi<(length-1):
csrf=com[i+1]
i+=1
elifcom[i]=='-s'andi<(length-2):
sid1=com[i+1]
sid2=com[i+2]
i+=2
ifusername==""orpassword==""orsid1==""orsid2=="":
print'[Error]Parametererror!'
print'[Error]Youcanuse"pythonBuildChange.py-h"toseehowcanusethisscript.'
else:
ifcsrf=="":
cookie=Login(username,password)
else:
cookie=Login(username,password,csrf)
_url="//changelog//between//%s//and//%s/"%(sid1,sid2)
GetHtml(_url,cookie)
ParseHtml()
GenerateResultTxt()

#C:Python27python.exeC:UsersknightDesktopuildBuildChange.py-uxux-pKKKKKKKK-s18594091858525

if__name__=="__main__":
ParseParam(sys.argv)

㈢ https怎么获得证书,网站https访问证明弄

要想将网站升级成https站点,必须申请并且安装SSL证书。具体的申请步骤如下:
第一步:将CSR提交到代理商
CSR(Certificate Signing Request)文件必须由用户自己生成,也可以利用在线CSR生成工具。选择要申请的产品,提交一个新的订单,并将制作好的CSR文件提交。
第二步 资料提交到CA
当收到您的订单和CSR后,如果是域名验证型证书(DV SSL证书),在域名验证之后10分钟左右就可颁发证书,若是其他类型证书则是需要通过CA机构进行验证之后才可颁发。
第三步 发送验证邮件到管理员邮箱
权威CA机构获得资料后,将发送一封确认信到管理员邮箱,信中将包含一个 对应的链接过去。每一个订单,都有一个唯一的PIN以做验证用。
第四步 邮件验证
点击确认信中的链接,可以访问到CA机构验证网站,在验证网站,可以看到该订单的申请资料,然后点击”I Approve”完成邮件验证。
第五步 颁发证书
在用户完成邮件验证之后,CA机构会将证书通过邮件方式发送到申请人自己的邮箱,当用户收到证书后直接安装就可以了。若安装存在问题,我们是提供免费证书安装服务的。

㈣ https证书都是怎么获得的

您好!
SSL申请步骤如下:
一、快捷申请SSL证书,请淘宝中找到:Gworg
二、提前准备好域名(网址),联系人的邮箱(该邮箱用于接收证书)
三、根据客服提示引导完成域名认证。
四、获取SSL证书并且安装到服务器或支持SSL证书的虚拟主机。

㈤ 如何实现python接口,的https

今天写代码时碰到一个问题,花了几个小时的时间google,基本上把google搜索的前几页内容都一一看了下,问题最终是解决了,不过过程挺曲折的,所以把这个过程记下来以便以后参考之。
原因是以下一段代码引起的:
?

12

import urllib2urllib2.urlopen('https://xxxx.com')

本来这段代码很简单的,就是请求一个https的连接,可是报以下错误:
?

1

urllib2.URLError:

第一反应是https证书问题产生的,如是以'python ssl' 为关键字google后,看到大家都在用'requests'这个python组件做http请求客户端,就像java里面的httpclient组件一样,如果安装完request包后,改成如下代码:
?

12

import requestsrequests.get('https://xxx.com')

还是报以下错误:
?

1

requests.exceptions.SSLError:
[Errno 1] _ssl.c:504: error:140773E8:SSL routines:SSL23_GET_SERVER_HELLO:reason(1000)

可以看出来,用requests和urllib2报的错误信息是一样,可见它们都是基于相同的底层api操作的,比如基于TLS的socket连接。到这里的时候我怀疑这个问题不是python代码写的有问题,可能是操作系统级别的设置错了。如下直接在shell客户端运行如下测试脚本:
?

1

wget
https://xxx.com

果然报如下错误:
?

12

OpenSSL:
error:140773E8:SSL routines:SSL23_GET_SERVER_HELLO:reason(1000)无法建立
SSL 连接。

到这里我怀疑是openssl安装有问题,更新到最新版本后还是一样,然后在浏览器里访问是可以的,所以应该不是openssl有问题。继续google.......,就发现有人也遇到过这种问题,说是连接SSL服务器时SSL的版本不对,如是用如下代码测试不同的SSL版本,看是不是这个问题:
?

12345

curl
-1 https://xxx.com curl
-2 https://xxx.com curl
-3 https://xxx.com

分别用上面的三句脚本去测试连接情况,发现第三种可以连接正常(-1,2,3,数字分别代码tlsv1,sslv2,sslv3三个不同的SSL版本)。说明这个https连接所在的服务器是基于SSLV3版本的。找到的问题,就很容易知道怎么改写python代码了。
?

123456789

class MyAdapter(HTTPAdapter): def init_poolmanager(self,
connections, maxsize): self.poolmanager= PoolManager(num_pools=connections, maxsize=maxsize, ssl_version=ssl.PROTOCOL_SSLv3) s= requests.Session()s.mount('https://',
MyAdapter())#所有的https连接都用ssl.PROTOCOL_SSLV3去连接s.get('https://xxx.com')

urllib2实现:
?#
custom HTTPS opener, banner's oracle 10g server supports SSLv3 onlyimport httplib,
ssl, urllib2, socketclass HTTPSConnectionV3(httplib.HTTPSConnection): def __init__(self,*args,**kwargs): httplib.HTTPSConnection.__init__(self,*args,**kwargs) def connect(self): sock= socket.create_connection((self.host,self.port),self.timeout) if self._tunnel_host: self.sock= sock self._tunnel() try: self.sock= ssl.wrap_socket(sock,self.key_file,self.cert_file,
ssl_version=ssl.PROTOCOL_SSLv3) except ssl.SSLError,
e: print("Trying
SSLv3.") self.sock= ssl.wrap_socket(sock,self.key_file,self.cert_file,
ssl_version=ssl.PROTOCOL_SSLv23) class HTTPSHandlerV3(urllib2.HTTPSHandler): def https_open(self,
req): return self.do_open(HTTPSConnectionV3,
req)#
install openerurllib2.install_opener(urllib2.build_opener(HTTPSHandlerV3())) if __name__== "__main__": r= urllib2.urlopen("htANPROD1/bwskfcls.P_GetCrse") print(r.read())

可以看到这两种方案的原理都是一样,就是自定义连接处理器,改变连接时ssl的版本号。

㈥ 怎么解决使用python的requests获得网页时出现sslEOFError错误

㈦ python请求https怎么搞

import requests

response=requests.get(httpsUrl,verify=False)

㈧ HTTPS证书申请有哪几个步骤

第一步:将CSR提交到代理商
CSR(Certificate Signing Request)文件必须由用户自己生成,也可以利用在线CSR生成工具。选择要申请的产品,提交一个新的订单,并将制作好的CSR文件提交。
第二步 资料提交到CA
当收到您的订单和CSR后,如果是域名验证型证书(DV SSL证书),在域名验证之后10分钟左右就可颁发证书,若是其他类型证书则是需要通过CA机构进行验证之后才可颁发。
第三步 发送验证邮件到管理员邮箱
权威CA机构获得资料后,将发送一封确认信到管理员邮箱,信中将包含一个 对应的链接过去。每一个订单,都有一个唯一的PIN以做验证用。
第四步 邮件验证
点击确认信中的链接,可以访问到CA机构验证网站,在验证网站,可以看到该订单的申请资料,然后点击”I Approve”完成邮件验证。
第五步 颁发证书
在用户完成邮件验证之后,CA机构会将证书通过邮件方式发送到申请人自己的邮箱,当用户收到证书后直接安装就可以了。安信SSL提供免费的安装服务。

㈨ 如何获得免费的https证书

您好!

是的!正式注册HTTPS证书(SSL证书)是需要收费的!需要权威的CA机构对信息进行审核才可以完成注册,并且最长有效时间2年。CA也就是第三方机构,确保证书传输的合法性和安全性,服务端提供合法服务,客户端需要持有公钥进行通讯。CA公司的主要成本构成:审核、验证CSR成本、支持成本、法律成本(保险费用和担保费用等)。全球信任度高的HTTPS(SSL证书)签发机构不超过5家!所以信任度较高的证书,费用都是很高的!


下面介绍在Gworg申请HTTPS证书:

申请SSL证书分为三个类型,他们需要的资料有所区别:

一、DV SSL证书(个人)

提供域名就可以完成申请SSL证书,Gworg申请SSL大概1-15分钟就可以完成,步骤很简单。

二、OV、EV SSL证书(组织机构、企业、政府)

材料:域名、负责人信息(电话、邮箱)、营业执照或组织机构代码证、公司电话,如果是国外的还需要提供商业注册证。

SSL证书需要登录Gworg CA机构申请,具体分为以下步骤:

一、登录Gworg页面

二、选择产品,选择购买的证书品牌,然后点击【点击申请】按钮确认需要的产品和证书类型

三、点击立即生成证书,填写请求CSR。

四、选择认证方式,进行认证,几分钟后下载证书即可。

注:由于具体申请流程复杂,请根据Gworg教材申请:网页链接

快速申请SSL数字证书,也可以登录:淘宝Gworg,直接注册数字证书

㈩ 怎么获得免费的https证书

站在用户安全的角度来讲,不建议申请免费的https证书。为何不建议呢?且看我分析一下他们的区别:
1、验证类型
免费SSL证书只有域名验证性型(DV SSL证书),而付费SSL证书有域名验证型(DV SSL证书)、企业验证型(OV SSL证书)、组织验证型(EV SSL证书)。
免费SSL证书仅需要域名验证不需要对企业和组织进行验证,因此留下了很大的安全漏洞和隐患。黑客只需验证域名信息就能轻松获得证书,从而为自己披上看似可信的外衣。此时的https仍可起到加密传输的作用,但信息传输的目的却由真实网站的服务器变成了黑客的“钓鱼”服务器,信息加密也就如同虚设,黑客抓取用户敏感信息就变得轻而易举。
2、使用限制
免费SSL证书在使用时还有诸多限制,比如:免费SSL证书只能绑定单个域名、不支持通配符域名、多域名等。此时相关服务也会大打折扣,大多数免费的SSL证书都由用户自行安装,无法提供后期服务和技术支持,在遇到SSL证书安装问题时,也无法得到解决。
而提供付费SSL证书的商家,一般会提供申请购买到安装的一系列访问,后续出现问题,还找提供商寻求解决。
3、使用时间
免费SSL证书有效期过短,每三个月或者一个月就要更新一次,到期后还要自己申请,很多用户很容易就会忘记续期。
而付费SSL证书的使用年限一般是2年,不用时时刻刻担心证书过期的问题。
4、选择多样性
目前提供免费SSL证书的Lets Encrypt、Comodo等,而付费SSL证书选择性就大得多,Comodo、GeoTrust、Symantec、RapidSSL、Thawte等知名CA机构。
天下没有免费的午餐,综上所述,还是选择付费的吧。

阅读全文

与python获取https证书相关的资料

热点内容
如何判断服务器有没有带宽 浏览:41
天正建筑批量删除命令 浏览:94
cad最下面的一排命令都什么意思 浏览:456
pythonimportcpp 浏览:850
W10的系统怎么给U盘加密 浏览:370
华为手机代码编程教学入门 浏览:762
和彩云没会员怎样解压 浏览:634
androidimageview保存 浏览:387
新买店铺什么服务器 浏览:883
文件夹能直接刻录吗 浏览:493
androidxmpp删除好友 浏览:969
javac哪个前景好 浏览:428
中华英才网app为什么不能搜索了 浏览:660
服务器域名是什么意思 浏览:52
Linux导出mysql命令 浏览:159
无诈建邺是什么app 浏览:228
python中的双色球 浏览:167
python解释器里如何换行 浏览:412
python编写格式 浏览:576
用python做出来的软件 浏览:469