网站 SSL 证书初学者指南
在构建处理个人数据的 Web 应用程序时,安全是第一要务。这不仅适用于在线商店和购物车,也适用于流行的社交网络,如 Twitter 和 Foursquare。SSL是一种非常类似于 HTTP 的安全协议,因为它可以通过 Internet 接收和传输数据。
诚然,整个概念有点令人费解,但并不难理解。如果您是网站管理员或只是对了解 SSL 证书感兴趣的人,那么本指南应该非常适合您。我整理了这组最容易混淆的术语供初学者使用。花一些时间浏览这里以及阅读有关该主题的其他外部文章。安全对于任何网站的成功都是至关重要的,而 SSL 只是大局中的垫脚石。
什么是 SSL?
SSL 协议代表安全套接字层,最初由 Netscape 开发。这是一个过程,用户和服务器之间传递的数据被加密/解密,这样外部第三方就无法劫持连接。
SSL 的行为类似于数字护照,可验证您自己和最终 Web 服务器的凭据。当两个身份都经过验证时,SSL 会通过 HTTPS 授予安全连接。此过程是使用证书执行的。我已经分解了 SSL 证书的关键方面,其中包括:
- 主人的名字
- 用于识别的证书序列号
- 证书的到期日期
- 用于加密信息的证书公钥
- 用于解密信息的证书私钥(通常来自网络服务器)
您不需要完全理解所有这些信息的用途。在某些情况下,您会收到包含更多信息的证书。然而,它们都不会直接影响用户;它只影响服务器和远程计算机之间的连接。
设置证书
您很可能会弄清楚 SSL 工作原理的要点。这是一种更复杂的数据传递形式——就像在上锁的保险箱内传输消息一样。没有必要记住 SSL 证书的关键元素或了解它如何与 Web 服务器连接,但在设置您自己的证书之前至少了解该过程的基础知识是有好处的。
SSL 证书实际上是从 Web 上的许多可靠供应商处购买的。每个证书都有一个到期日期,这意味着您必须更新它以确保您的网站安全(通常是每年一次)。处理起来似乎真的很痛苦,但幸运的是,许多流行的网络主机(如FatCow)会在设置过程中帮助您。
首先,您需要在自己的 Web 服务器上生成 CSR 或证书签名请求。在获得 SSL 证书之前需要 CSR。如果您在网络服务器上拥有完全的管理权限,则可以自己创建它。但是,强烈建议您先联系您的虚拟主机,因为他们可能不允许您自己这样做。这没什么坏处,事实上,它实际上使您的工作变得容易得多!
获得此加密的 CSR 后,您可以联系证书提供商。只有少数值得信赖的供应商,例如Verisign或Thawte。购买证书后,只需联系您的虚拟主机支持,他们就会很乐意为您安装。
不同类型的 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 生成。
请注意,其中大部分信息必须与我所在域的 Whois 网络数据相匹配。我使用Whois Domain Tools应用程序,它提供了此表单所需的所有信息。如果您安装了域隐私,则需要使用此数据而不是您自己的数据,以便 CSR 匹配。
此过程最多可能需要 24 小时才能完成注册。我在 15 分钟内得到了回复。让我们继续并立即购买我们的证书,以便我们准备好使用签名请求进行安装。
让我们购买吧!
Comodo 计划从每年 9 美元到近 100 美元不等。我正在查看每年只需 25 美元的 EssentialSSL 套餐。考虑到一些替代方案,这不是一个糟糕的交易。
如果我们对证书不满意,此计划附带 15 天退货政策。此外,我们的域名将针对 www 子域和非 www. 将此包裹添加到我的购物车后,我们就可以结帐了。Namecheap将要求我登录现有帐户或注册一个新帐户。
输入我所有的帐户数据后,将出现最终付款屏幕。我们可以选择使用我的账户、信用卡或 PayPal 中存储的资金进行支付。如果一切顺利,我们将被重定向到订单确认表(您应该另外收到一封包含此信息的电子邮件)。到目前为止一切看起来都很好!
最后安装
CSR 应该出现在来自您的网络托管服务商的电子邮件中。钥匙更像是一堆乱七八糟的字符和钥匙。这是我们需要为 SSL 验证提供的。回到 Namecheap 让我们找到 SSL 证书的页面并单击“激活”。
在这个新页面上,我们需要选择服务器类型并输入 CSR 密钥。我选择 Apache + OpenSSL 作为默认选择。这是 Apache 的常见设置,但如果您不确定,请事先与您的主机核实。请注意,您的虚拟主机应该返回一个更长的RSA 密钥,用于在服务器端进行私人身份验证。我们需要做的就是将较短的 CSR 密钥复制粘贴到框中并提交。
然后,我们生成一封电子邮件,发送给域名的“批准人”。这将包含有关您的 SSL 证书以及如何在主机上激活它的一些信息。最后的提交表单将需要我们的 RSA 密钥以及一些额外的 SSL 捆绑包信息。这些都是我们通过 CSR 后由 Namecheap 提供的。
值得注意的是,在某些 Web 主机上,您可能无法在共享环境中使用 SSL。HostGator 允许企业将他们的帐户升级到主 IP 地址,这样证书就不会出现任何冲突错误。HostGator的SSL 安装表单非常简单,验证速度也非常快。
在房东确认一切正常后,我们就可以开始了。请注意,这可能需要几个小时到一天或更长时间。请耐心等待并继续检查您的电子邮件。验证后,尝试通过 HTTPS 访问您的网站,所有证书详细信息都应该在地址栏中。当您刚开始时,这总是一场斗争,但如果需要,请不要害怕向您的 SSL 提供商或网络主机寻求帮助。
管理安全连接
我发现这篇 Hostgator 支持文章对理解设置过程非常有帮助。即使您不是 HostGator 的客户,您也很可能会使用 cPanel 来管理任何远程 Web 服务器。这适用于 1&1 Hosting、Bluehost 等。
但是在第 3 方 Web 主机上使用 SSL 设置的最好的部分是您不需要对您的代码进行更改(或最多微小的更改)!在您购买证书后,大多数网络托管服务商都会很礼貌地为您安装它们。一切顺利运行后,所有通过 HTTP 和 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 不是您可以通过学习来理解的主题。与编程类似,您确实需要深入研究并亲自动手设置自己的证书。这是一项艰巨的任务,但从长远来看,它提供了一种美妙的成就感。如果您知道任何其他有用的指南或相关材料,请随时在帖子讨论区分享。