在HTTPS

时间:2016-05-13 10:51:33

标签: grails https openssl ssl-certificate

我想在localhost上的https上运行Grails。我已经配置了HTTPS,并且在localhost:443被命中时可以看到Apache页面。目前,Grails在8080上运行。当我尝试使用grails -Dserver.port.https=443 run-app -https运行grails时,我得到Permission denied。我知道这需要在端口1024下面进行某种根访问。但是当我尝试sudo grails run-app时,这会让我找不到命令。

任何可能的解决方案?

1 个答案:

答案 0 :(得分:1)

通常,以root用户身份运行您的网络应用程序是一个坏主意。实际上,您的应用程序变得超级可利用。您的设置中的任何安全漏洞都会突然使攻击者获得对服务器的完全root权限。

这就是为什么它更常见的做法之一:

  • 使用https在端口443上运行apache或nginx或haproxy等代理,在没有https的情况下在端口8080上运行grails。设置代理以在8080将所有请求转发到您的grails应用程序。确保grails应用程序仅侦听localhost,因此您无法直接访问yoursite.com:8080。
  • 使用https在8080运行Grails,仅侦听localhost,并设置netfilter / iptables规则以将443上的流量转发到localhost 8080.

这两个设置基本相同。主要区别在于是使用用户级别设置,还是依赖于netfilters等操作系统级别的服务。