首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用python检索远程主机的TLS/SSL对等证书?

要使用Python检索远程主机的TLS/SSL对等证书,您可以使用ssl库和socket库。以下是一个示例代码:

代码语言:python
代码运行次数:0
复制
import socket
import ssl

def get_remote_certificate(hostname, port):
    context = ssl.create_default_context()
    with socket.create_connection((hostname, port)) as sock:
        with context.wrap_socket(sock, server_hostname=hostname) as ssock:
            certificate = ssock.getpeercert()
            return certificate

hostname = 'example.com'
port = 443
certificate = get_remote_certificate(hostname, port)
print(certificate)

在这个示例中,我们首先导入socketssl库。然后,我们定义一个名为get_remote_certificate的函数,该函数接受主机名和端口号作为参数。在函数内部,我们创建一个默认的SSL上下文,并使用create_connection函数创建一个TCP连接。接下来,我们使用wrap_socket函数将TCP连接升级为SSL连接,并传递主机名以进行服务器名称指示(SNI)。最后,我们使用getpeercert函数获取对等证书,并返回它。

在主程序中,我们定义一个主机名和端口号,然后调用get_remote_certificate函数以获取对等证书。最后,我们打印证书信息。

请注意,这个示例仅适用于支持SNI的服务器。如果您需要检索不支持SNI的服务器的证书,您需要使用其他方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用 Checkmk 监控 SSL TLS 证书?

因此,任何 Web 服务器管理员的一项重要任务是管理 SSL/TLS 证书并在它们过期之前对其进行更新。...在本教程中,我想向您展示如何使用来自tribe29的监控工具 Checkmk 来监控您的 SSL/TLS 证书,Checkmk 会密切关注您的证书,并让您知道何时应该更换它们,使用监控工具比仅使用 Excel...您已经创建了一台主机和一项服务。 第 2 步:将 HTTPS 检查添加到您的主机 现在您将使用“check_http”扫描您网站的 SSL/TLS 证书。...我选择了“SSL.check”。 在主机设置下,勾选主机名/IP 地址前的框并添加您的网站。在我的情况下,'www.checkmk.com'。 勾选TCP 端口的复选框以使用 SSL/TLS 端口。...[202203171319192.png] 下一步:超越 SSL/TLS 的 Web 服务器监控 本教程向您展示了如何使用 Checkmk 通过使用主动检查来监控 SSL/TLS 证书。

1.8K10

如何使用Certbot独立模式检索我们在Ubuntu 18.04上加密SSL证书

在本教程中,我们将讨论Certbot的独立模式以及如何使用它来保护其他类型的服务,例如邮件服务器或RabbitMQ之类的消息代理。...对于443端口,它应该是--preferred-challenges tls-sni。最后,该-d标志用于指定您要为其申请证书的域。您可以添加多个-d选项以涵盖一个证书中的多个域。...我们来看看我们下载的内容以及如何在我们的软件中使用这些文件。...大多数软件都会将此文件用于实际证书,并在其配置中使用“ssl-certificate”等名称引用它。 有关存在的其他文件的更多信息,请参阅Certbot文档的“ 我的证书在哪里 ”部分。...结论 在本教程中,我们安装了Certbot Let的加密客户端,使用独立模式下载了SSL证书,并启用了具有续订挂钩的自动续订。这应该可以让您在使用Let的加密证书时使用除典型Web服务器之外的服务。

1.5K00
  • 如何使用CentOS 7上的CloudFlare验证来检索让我们加密SSL通配符证书

    介绍 Let's Encrypt 是一个证书颁发机构(CA),它为传输层安全性(TLS)加密提供免费证书。它提供了一个名为Certbot的软件客户端,它简化了证书创建,验证,签名,安装和续订的过程。...我们的加密现在支持通配符证书,允许您使用单个证书保护域的所有子域。如果要使用单个服务器托管多个服务(例如Web界面,API和其他站点),这将非常有用。...-cloudflare python2-certbot-dns-cloudflare 如果您正在使用其他DNS服务,则可以使用以下yum search命令找到相应的插件: yum search python2...第3步 - 配置Certbot 您拥有告诉Certbot如何使用Cloudflare的所有必要信息,但是让我们将其写入配置文件,以便Сertbot可以自动使用它。...第4步 - 获取证书 要获取证书,我们将使用该certbot命令并指定我们想要的插件,我们要使用的凭证文件以及我们应该用来处理请求的服务器。

    3.3K11

    如何使用CentOS 7上的CloudFlare验证来检索让我们加密SSL通配符证书

    介绍 Let's Encrypt是一个证书颁发机构(CA),它为传输层安全性(TLS)加密供免费证书。它提供了一个名为Certbot的软件客户端,它简化了证书创建,验证,签名,安装和续订的过程。...如果你没有域名,建议您先去这里注册一个域名,您需要将域名解析到您的服务器,您可以使用腾讯云云解析进行快速设置。如果你有域名,保护你网站的最简单方法是使用腾讯云SSL证书服务,它提供免费的可信证书。...腾讯云SSL证书安装操作指南进行设置。 一个的CloudFlare帐户。 在Cloudflare的DNS中为您的域设置的DNS记录,以及配置的几个子域。...-cloudflare python2-certbot-dns-cloudflare 如果您正在使用其他DNS服务,则可以使用以下yum search命令找到相应的插件: yum search python2...第3步 - 配置Certbot 您拥有告诉Certbot如何使用Cloudflare的所有必要信息,但是让我们将其写入配置文件,以便Сertbot可以自动使用它。

    3.5K20

    如何使用CertCrunchy从SSL证书中发现和识别潜在的主机名称

    CertCrunchy是一款功能强大的网络侦查工具,该工具基于纯Python开发,广大研究人员可以利用该工具轻松从SSL证书中发现和识别潜在的主机信息。...支持的在线源 该工具支持从在线源或给定IP地址范围获取SSL证书的相关数据,并检索其中包含的目标主机相关信息,当前版本的CertCrunchy支持下列在线数据源: https://crt.sh/ https...工具安装 由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。...我们可以直接使用下列命令从指定域名获取主机名称(-D): python certcrunchy.py -D TARGET 命令参数 -D:从域名列表中获取主机名称,列表中每个域名按行分隔; -i:...从一个网络块或IP地址范围的主机获取并解析证书,例如192.168.0.0/24 -T:设置运行线程数量,可以提升工具运行速度,但不要设置太多线程; -O:设置HTTP API请求的超时时间,单位为秒,

    9510

    curl命令

    --cacert : SSL,告诉curl使用指定的证书文件来验证对等方,文件可能包含多个CA证书,证书必须采用PEM格式,通常情况下,curl是使用默认文件构建的,因此此选项通常用于更改默认文件...--capath : SSL,告诉curl使用指定的证书目录来验证对等方,可以通过使用:分隔多条路径,例如path1:path2:path3,证书必须是...--tlsv1.0: SSL,强制curl在与远程TLS服务器协商时使用TLS版本1.0,在7.34.0中添加。...--tlsv1.1: SSL,强制curl在与远程TLS服务器协商时使用TLS版本1.1,在7.34.0中添加。...58: 本地证书有问题。 59: 无法使用指定的SSL密码。 60: 对等证书不能用已知的CA证书进行身份验证。 61: 无法识别的传输编码。 62: LDAP URL无效。

    9.2K40

    etcd v2文档(5)--客户端https--安全

    安全模型 etcd通过客户端证书支持SSL/TLS以及身份验证,客户端到服务器以及对等(服务器到服务器/群集)通信。 首先需要为一个成员拥有一个CA证书和一个已签名的密钥对。...对等(服务器到服务器/群集)通信: 对等选项的工作方式与客户端到服务器的选项相同: --peer-cert-file = :用于在对等体之间进行SSL / TLS连接的证书。...因为我们使用自己的证书颁发机构使用自签名证书,所以您需要使用--cacert选项提供CA证书。 另一种可能性是将您的CA证书添加到系统上的可信证书(通常在/etc/ssl/certs中)。...如果启用对等体身份验证,则代理的对等证书也必须对对等体身份验证有效。 FAQ 我的群集不能使用对等体tls配置? etcd v2.0.x的内部协议使用了大量的短期HTTP连接。...使用SSL客户端身份验证时,我看到SSLv3警报握手失败? golang的crypto/tls包在使用它之前检查证书公钥的密钥用法。

    2.6K10

    Python Web学习笔记之SSL,TLS,HTTPS

    对于数据加密使用了对称加密(例如DES和RC4)。 l 可以使用非对称加密或公钥加密(例如RSA和DSS)来验证对等实体的身份。 l 连接时可靠的。消息传输使用一个密钥的MAC,包括了消息完整性检查。...TLS 握手协议提供的连接安全具有三个基本属性:    可以使用非对称的,或公共密钥的密码术来认证对等方的身份。该认证是可选的,但至少需要一个结点方。  共享加密密钥的协商是安全的。...然而, TLS 标准并没有规定应用程序如何在 TLS 上增加安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。 ...1.TLS与SSL的差异 1)版本号:TLS记录格式与SSL记录格式相同,但版本号的值不同,TLS的版本1.0使用的版本号为SSLv3.1。...因为SSL在HTTP之下工作,对上层协议一无所知,所以SSL服务器只能为一个IP地址/端口组合提供一个证书。[12]这就意味着在大部分情况下,使用HTTPS的同时支持基于名字的虚拟主机是不很现实的。

    1.2K30

    如何使用GSAN从HTTPS网站的SSL证书中提取子域名

    关于GSAN  GSAN这款工具能够帮助广大研究人员从HTTPS网站的SSL证书中直接提取主题别名,并向我们提供DNS名称(子域名)和虚拟服务器的相关信息。...功能介绍  1、从HTTPS网站的SSL证书中直接提取主题别名; 2、子域名提取/枚举; 3、支持使用文本文件或直接在终端窗口中以命令形式定义多个主机:端口; 4、CSV或JSON格式输出,...方便导入到其他工具中; 5、支持筛选出与正在分析的域名所不匹配的域名; 6、支持与CRT.SH集成,因此可以从同一实体的证书中提取更多子域名; 7、适用于自签名证书; 工具安装  由于该工具基于...Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。...pip安装 我们可以使用pip命令完成GSAN的安装: $ pip install --user gsan 源码获取 广大研究人员可以使用下列命令将该项目源码克隆至本地: git clone https

    1.5K20

    如何使用acme.sh自动获取、更新Let’s Encrypt的SSL证书?

    acme.sh实现了acme协议,可以从let's encrypt生成免费的ssl证书。...本文主要记录使用dnspod api 自动申请ssl证书 站点HTTPS检测:https://myssl.com/ 仓库地址 https://github.com/acmesh-official/acme.sh...可以颁发有效期为 90 天的无限TLS/SSL 证书(参考),由于v3,acme.sh使用 Zerossl 作为默认证书颁发机构 (CA)。在颁发新证书之前需要进行帐户注册(一次性)。...HSTS可以很大程度上解决SSL剥离攻击,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP 另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告...证书申请者在生成私钥的同时也生成证书请求文件。把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

    5.2K21

    搭建harbor仓库

    准备: Python、Docker和Docker Compose python需要2.7以上的版本 然后docker我用的是docker18.06.1-ce Docker Compose-1.22.0...因此,安装程序的尺寸非常小。 脱机安装程序:当主机没有Internet连接时,请使用此安装程序。安装程序包含预制图像,因此其大小较大。...ssl_cert:SSL证书的路径,仅当协议设置为https时才应用 ssl_cert_key:SSL密钥的路径,仅当协议设置为https时才应用 secretkey_path:用于在复制策略中加密或解密远程注册表的密码的密钥路径...verify_remote_cert:(上或关闭,默认为上)该标志,判断是否验证SSL / TLS证书时码头与远程注册表实例通信。...将此属性设置为off可绕过SSL / TLS验证,SSL / TLS验证通常在远程实例具有自签名或不受信任的证书时使用。 修改完配置文件以后 ➜ sudo .

    1.5K20

    MySQL8 中文参考(二十六)

    如果在服务器主机上执行mysql -u *user_name*有效,但在远程客户端主机上执行mysql -h *host_name* -u *user_name*无效,则您尚未为给定用户从远程主机启用对服务器的访问...这样,服务器和客户端都信任同一 CA 证书,并且客户端验证连接的主机是预期的主机: 要指定 CA 证书,请使用--ssl-ca(或--ssl-capath),并指定--ssl-mode=VERIFY_CA...MySQL 创建 SSL 和 RSA 证书和密钥 8.3.3.2 使用 openssl 创建 SSL 证书和密钥 8.3.3.3 使用 openssl 创建 RSA 密钥 以下讨论描述了如何在 MySQL...8.3.3.2 使用 openssl 创建 SSL 证书和密钥 本节描述了如何使用openssl命令设置供 MySQL 服务器和客户端使用的 SSL 证书和密钥文件。...示例 2:在 Unix 上使用脚本创建 SSL 文件 这是一个示例脚本,展示如何为 MySQL 设置 SSL 证书和密钥文件。

    42310

    使用golang部署运行tls的https服务时,不用停机,高效证书下放,如何实现?

    使用golang部署运行tls的https服务时,不用停机,高效证书下放,如何实现?...第一部分 这篇文章主要介绍如何在应用golang语言开发http/https服务时,如何让tls自动获取证书,而不必在证书更新或重置以后,还要重启服务器来让业务重新起效,本文分成三部分,第一部分会介绍tls...SSL/TLS 证书指纹算法 不受代理层、客户端版本等因素的影响;可以识别采用自定义密码套件的客户端。 无法识别中间人攻击;证书签发机构可能存在错误或欺诈。...然后对于服务响应去验证、重新生成,同时不用停机,就可以重新使用生成的验签证书。这篇文章,演示一下TLS验证是在基于golang语言的HTTPS服务是如何使用的。 这篇教程有先要满足下面这些先决条件。...第三部分 好了,这篇有关如何抽象TLS服务配置,达到不需要重启服务就能加载变更证书的文章就分享至些,感谢阅读,我特别将可用于tls加密的指纹算法提到第一段来讲,并把JA3指纹算法在四层服务传输协议中的使用

    1.2K10

    windows下使用curl命令

    它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。 如何在windows下使用curl命令?...使用TCP_NODELAY选项 -e/–referer 来源网址 -E/–cert 客户端证书文件和密码 (SSL) –cert-type 证书文件类型 (DER...–ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输 –ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输 -F/–form 模拟http...使用指定安全级别的krb4 -k/–insecure 允许不使用证书到SSL站点 -K/–config 指定的配置文件读取 -l/–list-only 列出ftp目录下的文件名称 –limit-rate...服务器字节范围 –range-file 读取(SSL)的随机文件 -R/–remote-time 在本地生成文件时,保留远程文件时间 –retry 传输出现问题时,重试的次数 –retry-delay

    2.7K20

    组复制安全 | 全方位认识 MySQL 8.0 Group Replication

    本节从组复制的IP白名单以及安全套接字(SSL)支持两个方面来介绍如何保护组合组成员之间连接的安全性。 5.1....组复制安全套接字层(SSL)支持 我们可以使用SSL来保护组成员之间的通信连接和分布式恢复的连接。本节将介绍如何配置SSL的连接。 5.2.1....,但是要根据配置的证书颁发机构(CA)证书来验证服务器TLS证书 VERIFY_IDENTITY 与VERIFY_CA类似,但是还要验证服务器证书是否与尝试连接的主机(组成员)匹配 复制的组通信连接的其余...(CA)证书文件的目录的路径名 ssl_crl 包含PEM格式的证书撤销列表的文件的路径名 ssl_crlpath 包含PEM格式证书撤销列表文件的目录的路径名 ssl_cipher 用于加密连接握手中允许使用的密码列表...分布式恢复的专用SSL系统变量如下: group_replication_recovery_use_ssl:设置为ON时,组复制会对分布式恢复的连接使用SSL,包括基于远程克隆和基于二进制日志的状态传输都会启用

    1.3K10

    windows环境下 curl 安装和使用

    选项  -e/--referer 来源网址  -E/--cert 客户端证书文件和密码 (SSL)            --cert-type 证书文件类型 (DER/PEM/ENG) (SSL...     --ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址            --ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输            -...-ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输  -F/--form 模拟http表单提交数据            --form-string 模拟http表单提交数据 ...-O/--remote-name 把输出写到该文件中,保留远程文件的文件名  -p/--proxytunnel 使用HTTP代理            --proxy-anyauth 选择任一代理身份验证方法...r/--range 检索来自HTTP/1.1或FTP服务器字节范围       --range-file 读取(SSL)的随机文件  -R/--remote-time 在本地生成文件时,保留远程文件时间

    2K60

    什么是SDK,哪种SDK容易受到攻击?

    HTTPS(超文本传输安全协议)是一种用于在不可信网络上实现安全连接的网络通信协议,它将 SSL/TLS 的安全功能添加到标准 HTTP(超文本传输协议)通信中,因此只要正确实现并配置,就可以防止窃听和中间人攻击...本地服务器能够收集当前设备中的位置、IMEI、安装信息等信息,而远程服务器可以发送请求并从本地服务器 检索这些信息。甚至是远程安装与卸载也可以通过与本地服务通信来实现。...2:滥用SSL/TLS HTTPS(SSL/TLS 上的 HTTP)只有在恰当的实现和配置下才会使通信信道安全。要想建立安全的 SSL/TLS 连接,客户端必须检查证书链和主机名是否有效。...如果主机名与服务器的域名匹配,则该主机名有效。...Lu L, Li Z, Wu Z, Lee W, Jiang G系统地研究了不正确的SSL/TLS证书验证过程所带来的威胁。通过分析,发现这些威胁在第三方SDK中也很常见。

    2K30

    二进制部署k8s教程01 - ssl证书

    server 服务端证书 peer 双向对等证书 ca 根证书(也叫 ca 签发机构) 单向认证 双向认证 1-4.ssl 签发机构 ca ca 签发机构,也叫 ca 根证书,是用来生成上面提到的 server...原来是 http 类型的,现在是 https 类型的,客户端在跟 web 服务端交互的时候,数据已经被加密了。这就是在 web 端,也就是 server 端使用了 ssl 证书。...** 1-7.ssl 对等认证 peer 对等认证。...**此时,集群上每个节点都需要一个 server 证书,并且同时要为每个节点颁发 peer 双向认证证书。每个节点之间互相访问,就要使用 peer 证书。这时候在 etcd 集群上,就叫对等认证。...使用 etcd 这个服务的客户端只有 kube-apiserver ,所以除了以上提到的 每个 etcd 节点自身需要的 server 证书以及 peer 对等证书外, 还需要生成一个 client 证书提供给

    96410

    解决WARNING: pip is configured with locations that require TLSSSL, however the ss

    结论在本篇博客中,我们介绍了当pip配置需要TLS/SSL,但Python的ssl模块不可用时,如何解决相关的警告信息。...SSL模块是Python标准库中的一个模块,提供了对SSL/TLS协议的支持,使Python程序能够在网络连接中使用加密和身份验证。...SSL模块提供了以下功能:创建SSL/TLS安全套接字,用于在网络上进行加密传输。对SSL/TLS套接字进行身份验证,可以使用证书和其他凭据验证对方身份。...进行握手和认证pythonCopy codesock.connect((host, port))在建立连接后,可以使用​​connect()​​方法与远程服务器进行握手,并对服务器证书进行认证。...需要注意的是,SSL模块的使用还涉及到证书和密钥的管理,涉及到证书的生成、签名、验证等操作。

    3.6K20
    领券