因此,我试图使用以下方法获得一些域证书:(首先从nmap检索端口,然后尝试使用443)
ssl.get_server_certificate((hostname, port))但是对于一些域名,比如以下几个(只有几个):q1.insightsnow.redbull.com,mib-cdn.redbull,internalauditdb uux-d.redb.com,smg20.redbull.com,ssmg11-q.redbull,pm.redbull.com。对于这个子域和许多其他域,我得到了一系列不同的错误:
我需要指出的是,对于许多其他子域(大约1000),一切正常工作,我可以获得他们的证书。但是对于他们中的200人,我不断地从上面得到错误,我在网上找不到他们的来源。
你知道我为什么不能在那些网站上使用ssl.get_server_certificate吗?或者我在哪里做错了什么?
谢谢!
发布于 2022-02-05 06:05:23
大多数如果这里的网站需要SNI。这是一个长期存在的问题,SNI没有完成与ssl.get_server_certificate -见具有SNI的站点证书(服务器名称指示)和Python第36076期。最后用3.10解决了这个问题:
$ python3.8 -c 'import ssl; print(ssl.get_server_certificate(("q1.insightsnow.redbull.com", 443)))'
...
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)
$ python3.10 -c 'import ssl; print(ssl.get_server_certificate(("q1.insightsnow.redbull.com", 443)))'
-----BEGIN CERTIFICATE-----
MIIHnjCCBoagAwIBAgIRAPcBO50Fz5QaF+JxeyoL1vEwDQYJKoZIhvcNAQELBQAw
gZUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
...对于较早的Python版本,请参见这个问题关于如何在不使用ssl.get_server_certificate的情况下获得证书的答案。
至于smg20.redbull.com和ssmg11-q.redbar.com,这些网站似乎一开始就无法从互联网上访问,也就是说,它们也不能被其他工具或浏览器访问。
https://stackoverflow.com/questions/70994539
复制相似问题