Python Requests - SSL证书验证

2025年3月17日 | 阅读 7 分钟

SSL(安全套接层)是一种数字证书,用于验证网站身份并启用加密连接。它是一种安全协议,有助于在 Web 服务器和 Web 浏览器之间创建加密链接。

公司和组织需要添加 SSL 证书来保护在线交易,并保护客户信息私密安全。

SSL 通过防止犯罪活动,通过读取和修改两个系统之间传输的信息来确保互联网连接安全。

SSL 证书的工作原理

SSL 的工作原理是通过确认在用户和网站之间传输的任何数据都无法被读取。加密算法用于收集传输中的数据,从而阻止黑客在数据通过连接发送时读取数据。数据包含敏感信息,如姓名、地址、信用卡号或其他财务信息。

SSL 证书的工作流程如下:

  1. 服务器尝试连接到带有 SSL 的网站。
  2. Web 浏览器或服务器请求 Web 服务器进行身份验证。
  3. 浏览器在响应中发送服务器的 SSL 证书副本。
  4. 服务器检查 SSL 证书是否受信任。如果受信任,则会向 Web 服务器发出信号。
  5. Web 服务器会返回一个数字签名确认,以启动 SSL 加密会话。
  6. 浏览器和服务器之间共享加密数据。

组织验证证书(OV SSL)

这是安全套接层证书的一个版本,其保证级别与扩展验证 SSL 证书类似;网站所有者需要一个完整实质性的验证过程。此类型的证书还会显示网站所有者的信息,以区别于恶意网站。组织 SSL 证书是第二贵的,这种证书的主要用途是在交易期间加密用户的敏感信息。商业或面向公众的网站必须安装 OV SSL 证书,以确认共享的任何客户信息都保持安全。

域名验证证书(DV SSL)

域名验证 SSL 证书提供的安全级别较低,加密级别也较低,因为验证过程用于提供最低级别的 SSL 证书类型。此类型的证书用于博客或信息类网站——即不包含数据集合或在线交易的网站。此类型的 SSL 证书可以快速获得,并且价格最低。网站所有者通过回复电子邮件或电话来验证此类型的证书。浏览器地址栏仅显示 HTTPS 和一个挂锁图标,不显示公司名称。

通配符 SSL 证书

此类型的证书允许在单个证书上保护基础域和无限个子域。如果有多个子域需要保护,那么可以使用通配符 SSL 证书,因为其比为每个子域购买单独的 SSL 证书更便宜。星号 (*) 是通配符 SSL 证书中的常用名称,其中星号表示任何有效的子域,这些子域包含相同的基本域。例如,一个通配符证书 `*.website` 可用于保护。

  1. Payments.youdomain.com
  2. Login.yourdomain.com
  3. Main.yourdomain.com
  4. Download.yourdomain.com
  5. Anything.yourdomain.com

多域名 SSL 证书 (MDC)

多域名证书用于保护多个域名和子域名。这包括完全不同的域名和具有不同顶级域名的子域名的组合。

示例

  1. www.example.com
  2. Myexample.org
  3. mail.myexample.net
  4. myexample.anything.com.au
  5. checkout.example.com
  6. secure.example.org

默认情况下,多域名证书不支持子域名。

如果需要用一个多域名证书保护多个站点,那么在获取证书时应指定两个主机名。

统一通信证书 (UCC)

UCC 也包含在多域名 SSL 证书中。UCC 是为保护 Microsoft Exchange 和实时通信服务器而构建的。如今,许多网站所有者使用这些证书来保护单个证书上的多个域名。这些证书经过组织验证,并在浏览器中显示一个挂锁图标。

熟悉每种 SSL 证书的类型,以获得适合您网站的正确证书类型,这一点非常重要。

如何获取 SSL 证书?

SSL 证书可以直接从证书颁发机构 (CA) 获取。每年有数百万个 SSL 证书由证书颁发机构颁发。SSL 证书的价格从免费到数百美元不等,具体取决于您需要的安全级别。一旦确定了所需证书的类型,就可以寻找提供所需级别 SSL 证书的证书颁发机构。

获取 SSL 证书的步骤如下:

  1. 设置服务器并确认 WHOIS 记录已更新并与提交给证书颁发机构的信息一致。
  2. 在服务器上创建证书签名请求 (CSR)。这是您的托管公司可以协助处理的操作。
  3. 通过将您的域名和公司详细信息提交给证书颁发机构来验证它们。
  4. 在流程完成后,安装他们提供的证书。

获取证书后,还需要在 Web 主机上或在您自己的服务器上配置证书,如果您自己托管网站的话。

SSL 证书可以使用在多个服务器上吗?

如果可能,SSL 证书可以在同一服务器上的多个域中使用。这取决于供应商;SSL 也可以用于多个服务器。原因是多域名 SSL 证书。

多个域具有多域名 SSL 证书。多域名 SSL 证书也称为 SAN 证书(主题备用名称)。每个多域名证书都有 SAN,可用于列出包含在一个证书下的其他域名。

SSL 证书过期时会发生什么?

SSL 证书会过期,这是由证书颁发机构或浏览器形式的 SSL 证书的事实上的监管机构提供的。SSL 证书的有效期最长为 27 个月。这意味着,如果前一个 SSL 证书已续订,则可以延长两年或最多三个月。SSL 证书过期的原因是任何形式的身份验证信息都需要定期重新验证,以检查 SSL 证书的准确性。随着公司和网站的不断出现,SSL 证书的相关信息也会发生变化。SSL 证书的到期期限的目的是确认用于验证服务器和组织的身份验证信息尽可能是最新的和准确的。

以前,SSL 证书的有效期为 5 年,后来缩短到 3 年,现在又缩短到 2 年,再加上最多 3 个月的额外时间。2020 年,Google、Apple 和 Mozilla 宣布将强制执行一年期的 SSL 证书。

当 SSL 证书过期时,该站点将变得无法访问。当用户尝试打开网站时,会在毫秒内检查 SSL 证书,并且这是 SSL 握手的一部分。如果 SSL 证书已过期,用户将收到一条消息,表明“此站点不安全,请自行承担风险打开”。

如果网站没有 SSL 证书,则建议不要打开该网站,因为它可能包含恶意软件。这会影响网站所有者的跳出率,用户会返回主页或转到其他地方。

如果允许证书过期,SSL 证书将失效,并且网站将无法在网站上运行安全交易。CA 将允许在到期日期之前续订 SSL 证书。

如何知道某个站点是否具有 SSL 证书?

查看站点是否具有 SSL 证书的简单方法是,只需查看 Web 浏览器中的地址栏。

  1. 如果 URL 以 https 开头而不是 http,则表示该站点是安全的并使用了 SSL 证书。
  2. 安全的站点包含一个挂锁图标,可以单击该图标查看网站的安全详细信息,最值得信赖的网站会显示绿色挂锁或绿色地址栏。
  3. 如果连接不安全,浏览器还会显示警告标志,例如红色的挂锁或未关闭的挂锁。

如何确认在线会话是安全的?

通过在具有 EV 或 OV 证书的网站上提交个人数据和在线支付详细信息。DV 证书不足以用于电子商务网站。通过查看地址栏可以判断一个站点是否具有 EV 或 OV 证书。

请求 SSL 证书验证

代码

输出

<!DOCTYPE html><html lang="en"><head>

<script async src="https://#/gtag/js?id=G-BMVLE5WY82"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-BMVLE5WY82');
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>GET and POST Requests using Python - Javatpoint</title><link rel="SHORTCUT ICON" href="https://images.tpointtech.com/images/favicon2.png" />
<link rel="stylesheet" type="text/css" href="https://images.tpointtech.com/link.css?v=6.0" async /><link rel="dns-prefetch" href="https://clients1.google.com"><link rel="dns-prefetch" href="https://images.tpointtech.com"><link rel="dns-prefetch" href="https://googleads.g.doubleclick.net"><link rel="dns-prefetch" href="https://www.google.com"><link rel="dns-prefetch" href="https://feedify.net"><meta name="theme-color" content="#4CAF50" /><meta property="og:title" content="GET and POST Requests using Python - Javatpoint" /><meta property="og:description" content="GET and POST Requests using Python with tutorial, tkinter, button, overview, canvas, frame, environment set-up, first python program, etc." />
<meta name="keywords" content="python tutorial, tkinter, button, overview, check button, canvas, frame, entry, environment set-up, first python program, python modules, basics, data types, operators, if-else statements, loops, history, features, history, versions, example, operators, variables" /><meta name="description" content="GET and POST Requests using Python with tutorial, tkinter, button, overview, canvas, frame, environment set-up, first python program, etc." /><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><link rel="canonical" href="https://tpointtech.cn/get-and-post-requests-using-python" />
<meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta name="Twitter:title" property="og:title" content="GET and POST Requests using Python - Javatpoint" /><meta name="Twitter:description" property="og:description" content="GET and POST Requests using Python with tutorial, tkinter, button, overview, canvas, frame, environment set-up, first python program, etc." /><meta property="og:url" content="https://tpointtech.cn/get-and-post-requests-using-python" /><meta property="og:site_name" content="www.javatpoint.com" /><meta name="Twitter:card" content="summary" /><meta name="Twitter:site" content="@pagejavatpoint" /><meta name="Twitter:domain" content="www.javatpoint.com" /><meta name="Twitter:creator" content="@pagejavatpoint" />

说明

在上面的代码中,导入了 request 模块,并输入了 url 来验证证书;在 get 方法提供的 get 函数中,将 verify 选项作为参数传入,它是一个布尔值,如果此值为 true,则验证证书,如果为 false,则进行验证。