【问题标题】:what is the use of https?https有什么用?
【发布时间】:2009-08-19 19:16:39
【问题描述】:

我是 HTTPS 技术的初学者 :(。我对 HTTPS 实现有些疑问。

假设我有一个注册表

http://www.sitename.com/register.php

如果我想在 HTTPS 中使用它,这将变成

https://www.sitename.com/register.php

这是什么意思?如何从头开始实现 HTTPS? 如何获得证书?

提前致谢!!

【问题讨论】:

  • 让人们感到安全 ;)

标签: https


【解决方案1】:

HTTPS 代表 HTTP 安全。它是通过通过安全连接提供 HTTP 来实现的。 查看 Wikipedia 上的 HTTP Secure 以获得更深入的解释。

设置 HTTPS 不仅仅是更改 URL 的问题。您必须向您的网站添加 SSL 证书才能执行此操作。这些证书可以从证书颁发机构 (List of CAs) 获得,或者您可以使用自签名证书。

谈谈您对 HTTPS 实施的疑虑。这是一个完善的协议,已由具有该主题的博士学位的安全专家完成。所以你可以信任 HTTPS 的实现。

Flat Mountain 有一篇很好的文章设置SSL Certificates on Apache*

*假设你通过 apache 服务器运行你的 php

【讨论】:

  • hm,证书其实是可选的。
  • 可能值得注意的是,您需要访问您的 Web 服务器配置才能启用 https。也就是说,如果您的网站是由第三方托管的,您可能需要按照他们的说明使用https,否则您可能无法使用。
  • @LFSR 是的,您可以自签名并生成自己的证书,但是当用户访问时会弹出警告说证书尚未签名。
  • @Kmit - 我更改了答案以反映这一点。谢谢
  • 我想说,与当局的认证是可选的,我也不清楚,现在答案更加完整;)
【解决方案2】:

其他人为您提供了有关 HTTPS 工作原理的良好资源链接。我将解决使用它的两个原因:

1.安全

使用 HTTPS 时,您的浏览器和网络服务器之间的流量会被加密。这可以防止任何碰巧可以访问您的数据在通过 Internet 时将经过的许多线路中的任何一条的任何人查看您发送给服务器的内容或服务器发送给您的内容。这就是使用 HTTPS 发送密码和其他登录凭据的原因。这就是处理银行业务和其他需要隐私的事务的网站使用 HTTPS 的原因之一。这就是为什么如果您从公共 wi-fi 连接读取网络邮件,您可能希望使用 HTTPS。

2。身份

通过 HTTPS 连接时,Web 服务器会为您提供证书。除了包含促进上述加密所需的公钥外,证书还尝试证明 Web 服务器的身份。这可以防止任何碰巧可以访问您的数据在通过 Internet 时将经过的许多线路中的任何一条的人将您的流量转移到他们的服务器,并假装是您想要联系的网站。如果你与黑客建立了加密连接,世界上所有的加密都无济于事。

为此,证书由证书颁发机构“签名”。证书颁发机构旨在验证他们向其颁发证书的人是他们声称的人。也就是说,CA 不会向美国银行以外的任何人颁发“bankofamerica.com”证书。您的浏览器带有一组预安装的证书颁发机构,其签名信任。如果服务器给你的证书不是由这些受信任的 CA 之一签名的,浏览器会警告你。

请注意,身份验证步骤的失败不会妨碍安全步骤。如果 HTTPS 服务器为您提供的证书不是由您的浏览器信任的 CA 签名的,您仍然可以与服务器建立加密、安全的连接——您只是无法确定谁在实际运行您的服务器'再谈。

【讨论】:

【解决方案3】:

通过 https 协议提供服务意味着您提供的是加密数据,理论上不可能是sniffed,因为它不是以纯文本形式传输的。连接通常通过端口 443 而不是 HTTP 流量的典型端口 80。

SSL 还提供了一个证书,用于向第三方(例如 VeriSign 或其他人)验证您的内容服务器。

对于专业站点,您可以将buy a certificate 安装在您的服务器上,或者在其他情况下,使用self signed certificate 可能会更好,尽管这些通常会在普通浏览器中显示令人讨厌的错误(这可能不是如果您只有受信任/信任的用户,则会出现问题)。

【讨论】:

    【解决方案4】:

    HTTPS 涉及许多层,它们都在那里确保您通过网络进行的 HTTP 通信是加密和安全的。它用于确保安全性的机制之一是向客户端证明服务器实际上是他所说的那个人,而不是假装是服务器的人。这是使用由大多数客户信任的证书颁发机构颁发的服务器证书来实现的。

    因此,您需要做一些事情才能让您的表单安全地通过 HTTPS 工作:

    1. 您需要配置您的 Web 服务器,以便它首先响应 HTTPS 请求。 HTTPS 请求在端口 443 上提供服务,因此它们不会与正常的 HTTP 请求混淆。
    2. 您需要从证书颁发机构获取与您的 HTTPS 请求的域名相匹配的服务器证书(在您给出的示例中为 "www.sitename.com"
    3. 最后,您需要确保表单将收集到的数据发布到的 URL 也是 HTTPS URL,否则,您只会保护原始表单的内容,而不是用户拥有的数据已提交。

    对于您的 register.php 页面,来自 HTTPS 或 HTTP 的客户端之间没有区别,您的处理方式将是相同的。但是,如果您想强制用户使用 HTTPS,那么您需要首先检查请求是否是纯 HTTP,以及是否将用户重定向到使用 HTTPS 协议的同一页面。这样,任何人都不会无意中使用不安全的地址。

    【讨论】:

    • +1 好答案。正如另一个答案中指出的那样,您可以从 CA 获取证书或自己生成自签名证书。
    • 谢谢。这就是为什么当我说“通过 HTTPS 安全地工作”时我限定了我的回答。如果证书是自签名的,那么您就有了加密,但您并没有真正的安全性,因为您无法确定与谁通信。任何人都可以创建和签署与您相同的证书并将其呈现给客户。尽管如此,自签名证书仍可用于测试。
    【解决方案5】:

    哇。嗯。您需要查看ssl and secure http。也可能是setting up ssl on apache

    基本上,它是一个加密的 http 连接。问问自己为什么需要加密连接,是否真的值得所有麻烦。

    【讨论】:

      【解决方案6】:

      如果您的网站在 apache 上运行,您需要设置 ssl,然后确保您的 vhost 也设置为在 443 上侦听。然后可以使用任一协议调用虚拟主机中的任何页面。

      http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html

      http://en.wikipedia.org/wiki/HTTP_Secure

      【讨论】:

        猜你喜欢
        • 2018-08-15
        • 2014-12-16
        • 2011-12-14
        • 1970-01-01
        • 2018-09-10
        • 2020-02-08
        • 2018-12-15
        • 2019-04-28
        • 1970-01-01
        相关资源
        最近更新 更多