redirect - Lighttpd SSL 重定向 - Windows

标签 redirect ssl lighttpd portforwarding

我有一个家庭服务器,我只想通过 https 提供页面,但我遇到了一些问题。我一直在为非安全页面提供服务,并且可以访问本地网络和 Web 上的页面(我使用的是 ddns.net 并且涵盖了所有端口转发)。 我已经正确安装了测试证书,目前重定向在本地网络上非常有效,但在网络上却不行。下面是我测试过的两个重定向 - 都在本地工作,但都无法提供来自网络的安全页面。

注意:我使用了一个非标准端口,即端口 1080,但是如上所述,非安全访问都可以,所以从我的网关路由器到服务器的端口转发是(至少我认为!)没问题。此外,当我将端口号连接到 IP/名称时,我只能浏览到服务器,即 localhost:1080 或 192.168.1.1:1080(这对我来说很好),因此重定向过滤器。

  1. 在这种情况下,我可以从本地网络安全和不安全地访问页面 bot,但无法从 Web 安全访问。

    $HTTP["scheme"] == "http" {
        $HTTP["host"] =~ "^(.*):1080" {
            url.redirect = (".*" => "https://%1$0")
        } 
    } 
    $SERVER["socket"] == ":443" {   
        ssl.engine = "enable"
        ssl.pemfile = Var.Doo + "/server.pem"    
        ssl.ca-file = Var.Doo + "/ca.pem"
        setenv.add-environment = ( "HTTPS" => "on" ) 
    }
    
  2. 经过一些网络研究后,我向重定向添加了一个条件,以便能够处理非端口连接的 URL,但是我既不能安全地访问网页,也不能不安全地从网络访问页面(尽管在本地仍然有效)。

    $HTTP["scheme"] == "http" {
        $HTTP["host"] =~ "^(.*):1080" {
            url.redirect = (".*" => "https://%1$0")
        }
        else $HTTP["host"] =~ ".*" {
            url.redirect = (".*" => "https://%0$0")
        }
    }
    $SERVER["socket"] == ":443" {
        ssl.engine = "enable" 
        ssl.pemfile = Var.Doo + "/server.pem" 
        ssl.ca-file = Var.Doo + "/ca.pem" 
        setenv.add-environment = ( "HTTPS" => "on" )
    }
    

编辑:好的,有 20 次浏览和计数,还没有答案的建议...... 我知道我在上面说过我相信端口转发一切都很好,但现在我正在重新考虑这个问题。有任何指示吗?

最佳答案

好的,我花了更多时间研究这个问题并设法解决了这个问题,这是两个方面的问题。

  1. 正如后来所怀疑的那样,我最初认为端口转发正常的假设结果是不正确的,因为我没有转发安全端口(lighttpd 强制默认为该端口),即端口 443。因此第一部分解决方案是在我的网关路由器上完成端口转发以包含该路由。

  2. 解决方案的第二部分是对配置文件中的重定向代码进行文本上的微小更改,以过滤端口而不是协议(protocol)(之前的代码也可能有效,但尚未测试)。这是经过更改和测试的代码:

$SERVER["socket"] == ":443" {
  ssl.engine = "enable" 
  ssl.pemfile = Var.Doo + "/server.pem" 
  ssl.ca-file = Var.Doo + "/ca.pem" 
  setenv.add-environment      = ( "HTTPS" => "on" )
}
else $SERVER["socket"] == ":1080" {
   $HTTP["host"] =~ "([^:/]+)" {
     url.redirect = ( "^/(.*)" => "https://%1:443/$1" )
   }
}

关于redirect - Lighttpd SSL 重定向 - Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714758/

相关文章:

HTTPS 中的 Apache 重定向

redirect - DNS 映射到子文件夹

c# - 如何从请求中获取 ClientCertificate(比较 ASP.NET 和 Silverlight)

ssl - 让我们在 ssllabs.com 上加密获得 A+ 级。此服务器的证书链不完整。等级上限为 B。

python - fastcgi、cherrypy 和 python

.htaccess - 我可以使用 .htaccess 规则对网站使用通配符,然后重写特定页面吗?

php - 多语言 .htaccess 重定向到子域

internet-explorer - 如何在网络浏览器上触发 SSL 重新握手?

.htaccess - 如何将 HTTP 重定向到 HTTPS (SSL)

python - Apache + mod_wsgi/Lighttpd + wsgi - 我会看到性能差异吗?