如何将http站点转换为完整的https?

信息安全 tls http
2021-08-23 12:22:41

我有一个仅使用 http 运行的站点。我已经决定要使用完整的 https,但我不知道该怎么做。

  1. 我必须在某处购买该证书吗?在哪里,多少钱?

  2. 它是否涉及更改我的实际代码?表单、ajax 等。

  3. 我是否必须更改服务器配置中的某些内容?什么,如何,在哪里?

我正在运行 PHP,我可以通过 ftp 访问服务器上的文件,我可以在浏览器中使用 Parallels 环境来更改服务器上的某些内容...

1个回答
  1. 您可以从https://startssl.com获得免费的 1 类证书(除了将它们用于我的免费 SSL 证书之外,我与他们没有任何关系)。这不是最用户友好的体验,但它可以免费完成工作——请注意,免费证书只能持续一年(并且不提供免费通配符证书等功能)。还有许多其他网站以其他价位提供更多功能。

  2. 不是真的,除了少数例外。如果您曾经像http://在您的站点中那样对链接进行硬编码,则需要将其更改为https://或仅将其作为相对链接或使用//www.example.com(这相当于http://www.example.com您在 http 页面上和https://www.example.comHTTPS 页面上。这也适用对于你可能忘记的东西,比如嵌入的内容——从 CDN 加载的图像或 CSS 或 JS 文件。你可能还希望会话 cookie 启用安全标志。

  3. 是的。将取决于您的网络服务器。必须启用在端口 443 上运行的 SSL,选择您要允许的密码,将您的网络服务器指向您的 CA 签名证书以及相关的私有 SSL 密钥。您可能需要将中间 SSL 证书添加到您的链式 SSL 证书。那里有很多指南和教程;例如,这是nginx的一个。您将希望找到允许的密码和 SSL/TLS 的良好选择。Mozilla在这里维护了一个推荐密码列表,我建议你使用它。测试您的配置的一个好方法是这个 SSL 测试工具. 您可能还想打开 HSTS(如果您的站点将来仅通过 HTTPS 提供服务;这可以防止它在 MITM 攻击中通过 HTTP 提供服务)。您还应该设置它,当尝试转到它时http://www.example.com/some/path,它会自动重定向到https://www.example.com/some/path适当的位置(并且应该选择这是永久重定向还是临时重定向)。