0

我的网站目前没有设置 SSL/https。现在我需要实现一个功能,以便我的移动应用程序可以与我的服务器通信。我只需要那个和那个路由的 https。

将我的网站更改为全 https 似乎对于这条单一路线来说工作量太大了。

在我的疯狂想象中,是否有第三方服务提供了一个 https 处理程序,我的移动应用程序可以安全地将信息传递给它。然后第三方服务使用我的密钥对这些信息进行加密,并使用标准 http 将这些信息传回我的服务器?

我上面想象的服务会出现什么问题?而且这样的事情已经存在了吗?

4

2 回答 2

0

没有 TLS 转发服务,而且永远不可能。原因是它会破坏 TLS 的所有目的。

基本上,TLS 保证客户端正在与它认为的服务器进行通信,并且没有人可以窃听或篡改通信。如果假设的 TLS 代理以纯文本形式将通信转发到另一台服务器,则所有这些保证都将丢失。

于 2013-07-10T08:09:03.883 回答
0

您不需要在整个网站上启用 ssl。您可以使用 .htaccess 为特定页面启用它

尝试这个

如果您对 mod_rewrite 和 regex 有一点了解,那么阅读这些规则应该不会有问题 - 注释会解释特定规则的作用。其余的——正则表达式基础:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

# force https for /login.php and /register.php
RewriteCond %{HTTPS} =off
RewriteRule ^(login|register)\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# don't do anything for images/css/js (leave protocol as is)
RewriteRule \.(gif|jpe?g|png|css|js)$ - [NC,L]

# force http for all other URLs
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^/(login|register)\.php$
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

这些规则需要在任何其他重写规则(如果存在)之前放置在网站根文件夹中的 .htaccess 中。如果放置在其他地方,可能需要进行一些小的调整。

他们将强制 /login.php 和 /register.php 使用 HTTPS,对图像、css 样式和 JavaScript 文件(准确地说,对于具有这些扩展名的文件)不执行任何操作,并将强制所有其他 URL 使用 HTTP

您可以轻松地将其他 URL 添加到该列表 - 只需通过在列表中添加其他文件名来编辑现有规则(2 处相同的文本:1)强制 2)排除)

文件名区分大小写。因此,如果请求 /LOGIN.php,这些规则将不起作用(Apache 也不会提供它,因为 Linux 是区分大小写的操作系统 .. 所以这里不必太担心)。

显而易见的事情:应该启用 mod_rewrite 并且 .htaccess 文件需要由 Apache 处理(一些网站托管公司出于性能和安全原因禁用它们)。

于 2013-07-10T06:00:51.567 回答