Security 在服务器级别与应用程序级别强制SSL

Security 在服务器级别与应用程序级别强制SSL,security,ssl,https,Security,Ssl,Https,我很确定以前也有人问过类似的问题,但我没有找到任何问题(也许我用错了术语) 我有一个不安全的web应用程序(内置于Laravel)。前端和后端之间的所有通信都通过http进行。现在,我想切换到https。据我所知,我有两种方法可以做到这一点 首先是将服务器(承载应用程序的服务器)配置为仅接受https请求。如果我这样做,客户端和服务器之间的通信将被加密,我不必在我的应用程序中更改任何内容(这是否正确?) 第二种方法是将我的应用程序配置为仅接受https请求。如果我这样做,我将不得不对我的应用程序

我很确定以前也有人问过类似的问题,但我没有找到任何问题(也许我用错了术语)

我有一个不安全的web应用程序(内置于Laravel)。前端和后端之间的所有通信都通过http进行。现在,我想切换到https。据我所知,我有两种方法可以做到这一点

首先是将服务器(承载应用程序的服务器)配置为仅接受https请求。如果我这样做,客户端和服务器之间的通信将被加密,我不必在我的应用程序中更改任何内容(这是否正确?)

第二种方法是将我的应用程序配置为仅接受https请求。如果我这样做,我将不得不对我的应用程序代码进行一些更改


现在我想问,这两条路都一样安全吗?我更喜欢哪种方式?为什么?

恐怕这里有几种东西混在一起了

您只能在web服务器(Apache、Nginx等)上打开SSL。您需要服务器证书,并且必须将web服务器配置为能够接收https(ssl)连接。至于如何做到这一点超出了本答案的范围,但您可以找到很多教程。你必须先这样做

当您的web服务器配置为支持SSL时,您希望您的web应用程序只能通过HTTPS而不是普通HTTP访问。其目的是,一方面,不知道差异的用户仍然是安全的,另一方面,攻击者不能将用户连接降级到不安全的普通HTTP

现在,关于如何为应用程序强制使用HTTPS,您确实有两个选择。您可以让web服务器处理普通HTTP请求并将它们重定向到SSL,这在和中都是一种简单的配置。或者,您可以向应用程序添加重定向,以在通过普通HTTP访问应用程序时处理该场景,并使用类似于
位置的
头将用户重定向到HTTPS

就安全性而言,不管是Web服务器还是应用程序进行重定向,从客户机的角度来看都是一样的(实际上几乎无法区分)。选择你最喜欢的选项。例如,可能存在选择其中一种的可维护性原因。(您希望在应用程序代码中保持重定向,还是让服务器操作添加重定向头等)


但是请注意,无论哪种方式,您的应用程序都可能容易受到名为的攻击,为了防止这种攻击,您应该始终发送一个。

在您的应用程序中接受ssl是什么意思?没有这样的选项,ssl必须由web服务器终止(例如Apache)。它是应用程序下面的一层。我在阅读有关Https设置的一般信息时,遇到了这个问题。这个被接受的答案让我认为有两个地方可以实现SSL。啊,好的,马上看我的答案。