跳至正文

网站 SSL 证书初学者指南

网站 SSL 证书初学者指南

在构建处理个人数据的 Web 应用程序时,安全是第一要务。这不仅适用于在线商店和购物车,也适用于流行的社交网络,如 Twitter 和 Foursquare。SSL是一种非常类似于 HTTP 的安全协议,因为它可以通过 Internet 接收和传输数据。

诚然,整个概念有点令人费解,但并不难理解。如果您是网站管理员或只是对了解 SSL 证书感兴趣的人,那么本指南应该非常适合您。我整理了这组最容易混淆的术语供初学者使用。花一些时间浏览这里以及阅读有关该主题的其他外部文章。安全对于任何网站的成功都是至关重要的,而 SSL 只是大局中的垫脚石。

安全在线交易消费者指南

安全在线交易消费者指南


交易不再局限于今天的现实世界。
见证互联网侦察发生在每一个现代…
阅读更多

什么是 SSL?

SSL 协议代表安全套接字层,最初由 Netscape 开发。这是一个过程,用户和服务器之间传递的数据被加密/解密,这样外部第三方就无法劫持连接。

SSL 的行为类似于数字护照,可验证您自己和最终 Web 服务器的凭据。当两个身份都经过验证时,SSL 会通过 HTTPS 授予安全连接。此过程是使用证书执行的。我已经分解了 SSL 证书的关键方面,其中包括:

  • 主人的名字
  • 用于识别的证书序列号
  • 证书的到期日期
  • 用于加密信息的证书公钥
  • 用于解密信息的证书私钥(通常来自网络服务器)

您不需要完全理解所有这些信息的用途。在某些情况下,您会收到包含更多信息的证书。然而,它们都不会直接影响用户;它只影响服务器和远程计算机之间的连接。

设置证书

您很可能会弄清楚 SSL 工作原理的要点。这是一种更复杂的数据传递形式——就像在上锁的保险箱内传输消息一样。没有必要记住 SSL 证书的关键元素或了解它如何与 Web 服务器连接,但在设置您自己的证书之前至少了解该过程的基础知识是有好处的。

SSL 证书实际上是从 Web 上的许多可靠供应商处购买的。每个证书都有一个到期日期,这意味着您必须更新它以确保您的网站安全(通常是每年一次)。处理起来似乎真的很痛苦,但幸运的是,许多流行的网络主机(如FatCow)会在设置过程中帮助您。

FatCow 专业虚拟主机,提供 SSL 服务

首先,您需要在自己的 Web 服务器上生成 CSR 或证书签名请求。在获得 SSL 证书之前需要 CSR。如果您在网络服务器上拥有完全的管理权限,则可以自己创建它。但是,强烈建议您先联系您的虚拟主机,因为他们可能不允许您自己这样做。这没什么坏处,事实上,它实际上使您的工作变得容易得多!

获得此加密的 CSR 后,您可以联系证书提供商。只有少数值得信赖的供应商,例如VerisignThawte购买证书后,只需联系您的虚拟主机支持,他们就会很乐意为您安装。

不同类型的 SSL

设置 SSL 证书的最常见方法是在您自己的主 IP 地址上。这称为专用 SSL 证书它只适用于您的域和网络服务器。不是每个人都有足够的钱购买专用的托管计划,但对我们所有人来说幸运的是,还有其他可用的解决方案。

通常,您可以使用三种不同类型的 SSL 证书。一些服务提供商可能会提供免费证书作为限时试用优惠,但这些证书绝不比标准 HTTP 连接更安全,而且它们很快就会过期。

  • 专用 SSL——这是最安全但显然也是最昂贵的解决方案。仅针对通过指定 IP 地址定位的根域验证 HTTPS 连接。
  • 共享 SSL – 提供共享主机的 Web 主机有时会有多个域名指向同一个 IP 地址。在这种情况下,主机在跨越一系列不同网站的每台服务器上管理一个单一的 SSL 会容易得多。
  • 通配符 SSL – 这些可以类似于基于服务器配置的专用或共享 SSL 证书。通配符 SSL 证书将针对您网站的多个子域。如果您拆分网站的不同功能(例如 shop.domain.com、checkout.domain.com 等),这是一个可行的解决方案。

如果您刚刚起步,我强烈建议您使用共享 SSL 设置。您不太可能立即负担得起专用网络主机/IP 地址。即使可以,专用 SSL 证书的成本也非常高。但如果可能的话,这绝对是你应该研究的事情。

但是,由于本指南是针对初学者的,我认为共享证书足以入门。

分步演练

熟悉 SSL 证书的最佳方式是通过一个工作示例。让我们将来自Namecheap的小型Comodo 证书放在一起。他们的定价非常合理,非常适合初学者入门。由于我们只需要完成流程和概述,这将是本教程的完美材料。

生成 CSR

现在开始,我们需要在服务器后端创建签名请求。我正在通过HostGator使用企业托管帐户来测试我的一个域。每个虚拟主机都有点不同,所以如果遇到问题,您必须咨询支持人员。此 URL用于 HostGator 帐户上的 CSR 生成。

HostGator 生成证书签名申请表

请注意,其中大部分信息必须与我所在域的 Whois 网络数据相匹配。我使用Whois Domain Tools应用程序,它提供了此表单所需的所有信息。如果您安装了域隐私,则需要使用此数据而不是您自己的数据,以便 CSR 匹配。

来自域工具的 WHOIS 信息

此过程最多可能需要 24 小时才能完成注册。我在 15 分钟内得到了回复。让我们继续并立即购买我们的证书,以便我们准备好使用签名请求进行安装。

让我们购买吧!

Comodo 计划从每年 9 美元到近 100 美元不等。我正在查看每年只需 25 美元的 EssentialSSL 套餐。考虑到一些替代方案,这不是一个糟糕的交易。

Namecheap.com EssentialSSL,每年 29 美元

如果我们对证书不满意,此计划附带 15 天退货政策。此外,我们的域名将针对 www 子域和非 www. 将此包裹添加到我的购物车后,我们就可以结帐了。Namecheap将要求我登录现有帐户或注册一个新帐户。

通过 Namecheap - credit/paypal 购买 SSL 证书

输入我所有的帐户数据后,将出现最终付款屏幕。我们可以选择使用我的账户、信用卡或 PayPal 中存储的资金进行支付。如果一切顺利,我们将被重定向到订单确认表(您应该另外收到一封包含此信息的电子邮件)。到目前为止一切看起来都很好!

最后安装

CSR 应该出现在来自您的网络托管服务商的电子邮件中。钥匙更像是一堆乱七八糟的字符和钥匙。这是我们需要为 SSL 验证提供的。回到 Namecheap 让我们找到 SSL 证书的页面并单击“激活”。

激活从 Namecheap.com 新购买的 SSL 证书

在这个新页面上,我们需要选择服务器类型并输入 CSR 密钥。我选择 Apache + OpenSSL 作为默认选择。这是 Apache 的常见设置,但如果您不确定,请事先与您的主机核实。请注意,您的虚拟主机应该返回一个更长的RSA 密钥,用于在服务器端进行私人身份验证。我们需要做的就是将较短的 CSR 密钥复制粘贴到框中并提交。

用于 SSL 的 Namecheap CSR 输入表单

然后,我们生成一封电子邮件,发送给域名的“批准人”。这将包含有关您的 SSL 证书以及如何在主机上激活它的一些信息。最后的提交表单将需要我们的 RSA 密钥以及一些额外的 SSL 捆绑包信息。这些都是我们通过 CSR 后由 Namecheap 提供的。

CSR 要求数据记录流程图

值得注意的是,在某些 Web 主机上,您可能无法在共享环境中使用 SSL。HostGator 允许企业将他们的帐户升级到主 IP 地址,这样证书就不会出现任何冲突错误。HostGator的SSL 安装表单非常简单,验证速度也非常快。

HostGator 安装 SSL 表单

在房东确认一切正常后,我们就可以开始了。请注意,这可能需要几个小时到一天或更长时间。请耐心等待并继续检查您的电子邮件。验证后,尝试通过 HTTPS 访问您的网站,所有证书详细信息都应该在地址栏中。当您刚开始时,这总是一场斗争,但如果需要,请不要害怕向您的 SSL 提供商或网络主机寻求帮助。

管理安全连接

我发现这篇 Hostgator 支持文章对理解设置过程非常有帮助。即使您不是 HostGator 的客户,您也很可能会使用 cPanel 来管理任何远程 Web 服务器。这适用于 1&1 Hosting、Bluehost 等。

但是在第 3 方 Web 主机上使用 SSL 设置的最好的部分是您不需要对您的代码进行更改(或最多微小的更改)!在您购买证书后,大多数网络托管服务商都会很礼貌地为您安装它们。一切顺利运行后,所有通过 HTTP 和 HTTPS 的连接都应该可以正常工作。

Google 主页的 Google Chrome HTTPS 挂锁图标

您可以通过检查 Web 浏览器中的 URL 地址栏来测试证书是否已通过身份验证。您应该会注意到一个小挂锁图标,表示您的计算机和远程 Web 服务器之间已验证 SSL 连接。如果您单击锁定图标,某些浏览器甚至会显示更多证书信息。

Apache .htaccess 重定向

如果您无法让访问者使用 HTTPS 协议,您可能需要考虑使用重定向脚本。这通常使用文件.htaccess在 Apache 服务器上设置,许多 Web 主机允许您直接在 cPanel 中配置。

我在下面添加了一些示例代码,您可以使用它们来设置自己的 .htaccess 文件。这会将所有传入流量重定向到带有 www 子域的 https://。您可以删除 www,这样所有流量都将被定向到https://yourdomain.com/并且重写规则仍然可以完美运行。

重写引擎开启
RewriteCond %{HTTPS} = 关闭
重写规则 ^(.*)$ https://www.yourdomain.com/$1 [R=301,L]
RewriteCond %{http_host} ^yourdomain.com [NC]
重写规则 ^(.*)$ https://www.yourdomain.com/$1 [R=301,L]
引用文件

您将遇到的最烦人的问题是引用绝对 URL 而不是相对文件路径。不会显示完全安全的连接,而是引用页面上显示“不安全项目”的警告。如果调用任何类型的外部媒体:视频、图像、样式表,则必须在本地完成。我在下面演示了一个例子:

1个
2个
3个
4个
5个
<!-- absolute -->
<link rel="stylesheet" type="text/css" media="all" href="http://www.domain.com/css/styles.css" />
 
<!-- local(correct method) -->
<link rel="stylesheet" type="text/css" media="all" href="/css/styles.css" />

使用第一段代码,您将可能不安全的文档加载到安全页面上。这正是聪明的黑客可以绕过您的加密的方法。我遇到的大多数情况都是通过 JavaScript 或 VBScript 进行解析的。但为了安全起见,请确保您的资产都不是直接通过 HTTP 提取的。

如果出于某种原因您必须通过绝对 URL 提取文件,请改用 HTTPS。如果您将文件托管在外部网站或服务器上,这可能会产生问题,因为您无法验证另一个 HTTPS 连接。努力将所有网页媒体整合在一个 IP 下,这样您就不会遇到这些问题!

相关链接

结论

我希望本介绍性指南能让您对 SSL 的世界有一些了解。Web 安全是一个蓬勃发展的行业,可以保护大量私人用户数据。包括 Amazon 和 eBay 在内的所有著名在线商店多年来一直在使用 SSL。

我承认 SSL/HTTPS 不是您可以通过学习来理解的主题。与编程类似,您确实需要深入研究并亲自动手设置自己的证书。这是一项艰巨的任务,但从长远来看,它提供了一种美妙的成就感。如果您知道任何其他有用的指南或相关材料,请随时在帖子讨论区分享。

标签:

发表回复