HTTPS:互联网安全通信的关键
核心要点:
什么是 HTTPS?
超文本传输协议安全 (HTTPS) 或通过 SSL 的超文本传输协议用于通过网络或更重要的是通过互联网进行安全通信。当您访问使用 HTTPS 的页面时,您会在 URI 中看到 https:// 和浏览器中的锁图标。
如果您曾经想过是否以及如何让您的网站使用 HTTPS,我们将尝试通过简要描述 HTTPS 的内容以及为什么以及如何实施它来阐明这一点。
为什么要使用 HTTPS?
考虑开发一个电子商务网站,该网站需要您的用户输入敏感信息(例如信用卡详细信息)才能进行在线交易。如果信息按原样通过互联网传输并被某人拦截,则很容易被理解和滥用。这就是 HTTPS 的作用所在——如果您需要防止此类威胁,则需要使用 HTTPS。
HTTPS 向您承诺两件事;首先,通过应用一种加密机制,敏感数据会被加密成乱码,只有您的服务器(证书所有者)才能解密。现在,如果此信息通过中间人攻击被拦截,它将毫无意义。其次,HTTPS 验证网站确实是它声称的网站。在您的情况下,它会在发送用户的加密信用卡详细信息之前验证您的网站,因此没有人可以模仿您。
因此,使用 HTTPS 可以验证您的网站并保护通过互联网通信的敏感信息。这在证书和加密的帮助下成为可能。
要使用 HTTPS,您需要一个证书。它是一个数字文档,您的网站提交该文档以向用户(Web 浏览器)声明您的身份。证书由称为证书颁发机构 (CA) 的公司颁发,这些公司将在证书中加密您的 Web 相关信息(例如您的域名、服务器平台和身份信息,例如公司名称地址、电话号码等)。您可能想知道浏览器如何信任证书。所有浏览器都预装了一组信息,使他们知道受信任的证书颁发机构。当您使用 HTTPS 时,您的服务器中将有您的证书,该证书将发送给您的用户,其浏览器将验证您。
我们知道 HTTPS 在通过互联网发送数据之前会对其进行加密,并且服务器会对其进行解密。在加密-解密方案中,涉及一对密钥。一个是公开的,另一个是私有的。当您的网站希望您的用户发送信息时,您的服务器会指示用户的浏览器使用密钥(公开)加密要发送的数据。收到加密的消息后,服务器将使用其私钥解密并理解数据。在 HTTPS 中,任何使用公钥加密的纯文本只能由私钥持有者解密。
如何使用 HTTPS?
要使用 HTTPS,您需要在服务器中安装证书。证书可以是自签名的,也可以是第三方签名的。自签名证书是由自身签名的证书,不受浏览器信任。当用户访问来自具有自签名证书的服务器的安全网页时,他们会看到警告。但是,如果您想在无需任何成本的情况下通过安全连接测试您的应用程序,或者如果您想要 Intranet 中的安全连接,它将很有用。另一方面,第三方签名的证书已通过验证并由浏览器信任的 CA 颁发。这将每年花费您一定的费用,价格从 10 美元到几百美元不等,具体取决于证书提供的某些功能。
要获得证书,您需要私钥和证书签名请求 (CSR)。这些是在您托管网站的服务器中生成的。在上一节的“加密”部分中,我们看到了私钥的作用。CSR 只需提交一个请求即可获得证书。当您生成 CSR 时,您将输入您的身份信息,例如公司名称、位置等。
假设您获得的证书是由某个浏览器或浏览器版本不信任的 CA 签名的。这种情况很少发生,但是如果发生这种情况,您的用户会看到“连接不受信任”的消息。为防止这种情况,您的 CA 将提供另一个称为链证书的证书。它拥有一系列受信任的 CA,它们可以验证您的 CA 和提供的证书。
安装自签名证书
SSLShopper 网站上的一篇文章解释了如何在您的 Apache 服务器中安装自签名证书。它还更多地讨论了自签名证书。如果您想要 IIS 7 中的证书,请查看此处。
如果您的网站位于共享主机上,您可以使用前端功能进行安装。C Panel 文档探讨了如何使用 C Panel 和 WHM 执行此操作。大多数情况下,托管提供商会要求您提出安装证书的请求,无论其类型如何。
安装由 CA 签名的证书
您也可以从 Verisign 等 CA 处购买证书,并在您部署网站以供商业使用时将其安装在您的服务器中。此 SSL 安装指南将帮助您使用任何服务器。CA 还可能通过电子邮件向您发送安装说明或对其支持页面的引用以及证书。
如果您的网站位于共享主机上,您可以查看 C Panel 文档并获得托管提供商的帮助。
我还想向您展示 BlueHost 如何在其主机中获取自签名证书和 CA 签名的证书。
安装 HTTPS 后该怎么做?
准备好 HTTPS 后,您需要对您的网站和服务器进行某些修改才能使其工作,此过程简单明了。
需要安全通信的页面必须在网站的开头读取 https:// 而不是 https://www.php.cn/link/8c9b0580ebd12c014a772c9cec371011 https://www.php.cn/link/53885282fbff8407b3b6e820b7830180 安全加载;您需要将网站上指向该页面的所有链接更改为 https://www.php.cn/link/c1f901ce2fdfc413658ecf4326d42b57。
除此之外,您还需要添加服务器设置以自动重定向尝试通过不安全 URI 访问安全页面的用户。例如,尝试使用 http:// 访问上述页面 (checkout.php) 的用户应被路由到 https://www.php.cn/link/8e3e59214cfae2e1afa470119559e683 Apache 上执行此操作。
为此,您将以下代码添加到 .htaccess 文件中:
<code>RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}</code>
但这会将所有网页重定向到 https://www.php.cn/link/6c2de35b691097827da9fdaadc060d69:
<code>RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^/?securepage/(.*) https://%{SERVER_NAME}/secureFolder/ [R,L]</code>
此规则如果使用 http:// 访问此文件夹中的文件,则会使用 https:// 重定向它们。当然,这是一个预防措施,即使用户通常不会手动更改协议,除非他们的意图不光彩。
我们还需要做一件事。您的安全页面上可能存在不安全加载的资源(图像、css 文件等)。要解决此问题,只需将这些文件的 http:// 替换为 //,例如:
<code>link rel="stylesheet" href="http://mysite.com/css/style.css"</code>
应读取为:
<code>link rel="stylesheet" href="//mysite.com/css/style.css"</code>
完成了!作为最佳实践,请使用不同的浏览器访问您的安全页面,并确保所有页面都正常。您可能会在浏览器中看到锁图标。您也可以单击它以获取更多信息。
结论
在本文中,我们介绍了什么是 HTTPS、为什么要使用 HTTPS 以及如何实施它。我们还介绍了一些底层技术方面,以了解 HTTPS 的工作原理。希望这有助于您清楚地了解 HTTPS 的内容以及如何使用它。欢迎您提供反馈!
HTTPS 常见问题解答 (FAQ)
HTTP 代表超文本传输协议,它是用于通过互联网传输数据的协议。另一方面,HTTPS 代表超文本传输协议安全。两者之间的主要区别在于,HTTPS 使用 SSL (Secure Sockets Layer) 证书在服务器和客户端之间建立安全加密连接,而 HTTP 则不是这种情况。这意味着 HTTPS 在传输敏感数据(例如信用卡信息或个人详细信息)时要安全得多,因为它降低了数据被黑客拦截的风险。
HTTPS 通过使用 SSL 证书在服务器(网站)和客户端(用户的计算机)之间创建安全加密连接来工作。当用户连接到 HTTPS 网站时,网站会将其 SSL 证书发送到用户的浏览器。然后,浏览器验证证书,如果证书有效,它会向服务器发送消息。然后,服务器发送回数字签名的确认以启动 SSL 加密会话。此加密会话确保在服务器和客户端之间传输的所有数据都是安全和私密的。
HTTPS 对 SEO 很重要,原因如下:首先,Google 已确认 HTTPS 是一个排名信号,这意味着使用 HTTPS 的网站在搜索结果中的排名可能高于使用 HTTP 的网站。其次,HTTPS 会增强用户信任度,因为它表明该网站是安全的并且重视用户隐私。这可以导致用户参与度提高和跳出率降低,这也会对 SEO 产生积极影响。
从 HTTP 切换到 HTTPS 包括几个步骤。首先,您需要从证书颁发机构购买 SSL 证书。获得证书后,您需要将其安装在您的服务器上。然后,您需要更新您的网站以使用 HTTPS 而不是 HTTP。这可能包括更新内部链接、更新任何代码库以及更新任何第三方服务以使用 HTTPS。最后,您需要设置 HTTP 到 HTTPS 的重定向,以便尝试访问网站 HTTP 版本的用户会自动重定向到 HTTPS 版本。
有一种普遍的误解认为,由于 SSL 握手过程中的额外步骤,HTTPS 会减慢网站速度。但是,使用现代服务器和优化的配置,对速度的影响最小,并且用户通常不会注意到。事实上,当与 HTTP/2(HTTP 协议的一个主要修订版,它提供了显著的性能改进)一起使用时,HTTPS 实际上可以提高网站速度。
虽然从技术上讲并非所有网站都需要 HTTPS,但强烈建议使用 HTTPS。即使网站不处理敏感数据,使用 HTTPS 仍然可以提供好处,例如改进的 SEO、增强的用户信任度以及对某些类型的攻击的保护。此外,许多现代 Web 功能(例如地理位置和服务工作者)仅在 HTTPS 上可用。
浏览器地址栏中的挂锁符号表示您访问的网站正在使用 HTTPS,并且连接是安全的。这意味着您发送到网站的任何数据(例如登录详细信息或信用卡信息)都已加密,黑客无法拦截。
SSL 证书是一个数字证书,用于验证网站的身份并启用加密连接。它包含有关网站所有者、网站的公钥以及颁发证书的证书颁发机构的数字签名的信息。当用户使用 HTTPS 连接到网站时,网站的 SSL 证书会发送到用户的浏览器。然后,浏览器验证证书,如果证书有效,它将使用网站的公钥加密发送到网站的数据。
虽然 HTTPS 比 HTTP 安全得多,但它并非完全不受黑客攻击。例如,如果黑客能够破坏网站的 SSL 证书,他们可能会拦截和解密数据。但是,此类攻击非常难以执行,并且对大多数网站来说都不是问题。最重要的是确保您的 SSL 证书已正确配置并保持最新。
HTTP/2 是 HTTP 协议的一个主要修订版,它提供了显著的性能改进。它允许通过单个连接多路复用多个请求和响应,从而减少需要传输的数据量。HTTP/2 还支持服务器推送,服务器可以在请求资源之前将资源发送给客户端。虽然 HTTP/2 不需要 HTTPS,但所有主要浏览器都只支持通过 HTTPS 连接的 HTTP/2。这意味着为了利用 HTTP/2 的性能优势,网站必须使用 HTTPS。
以上是HTTPS基础知识的详细内容。更多信息请关注PHP中文网其他相关文章!