使用pythn脚本获取服务器ssl证书的Common Name

本文介绍了三种方法获取服务器SSL证书的Common Name:1) 使用Python内置ssl库,但可能需要预先准备CA证书;2) 利用pyOpenSSL库,功能更丰富,但在Windows安装可能复杂;3) 使用openssl的s_client命令。各方法的适用场景和优缺点进行了比较。

1.使用python自带的ssl库来获取证书Common Name

由于自带的ssl库功能比较弱,如果指定ca证书时,在获取对应的证书数据时,一般会返回空,因此需要先准备好ca证书,可以使用http://curl.haxx.se/docs/caextract.html上面的

cacert.pem

使用以下脚本来获取CommanName

import socket
import ssl

ip='65.55.85.12'
s = socket.socket()
s.settimeout(10)
c = ssl.wrap_socket(s, cert_reqs=ssl.CERT_REQUIRED, ca_certs='cacert.pem')
c.settimeout(10)
print( "try connect to %s" % (ip))
c.connect((ip, 443))
cert = c.getpeercert()
print cert
如果可以正常连接,结果应该类似下面的结果

try connect to 65.55.85.12
{'notAfter': 'May 22 23:59:59 2015 GMT', 'subjectAltName': (('DNS', 'mail.live.com'), ('DNS', 'm.mail.live.com'), ('DNS', 'contacts.live.com'), ('DNS', 'hotmail.co.jp'), ('DNS', 'hotmail.co.uk'), ('DNS', 'hotmail.com'), ('DNS', 'hotmail.live.com'), ('DNS', 'hotmail.msn.com'), ('DNS', 'people.live.com'), ('DNS', 'www.hotmail.com'), ('DNS', 'www.hotmail.msn.com'), ('DNS', 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值