Lighttpd SSL 重定向 - windows

Lighttpd SSL Redirect - windows

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

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

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

    $HTTP["scheme"] == "http" {
        $HTTP["host"] =~ "^(.*):1080" {
            url.redirect = (".*" => "https://%1[=11=]")
        } 
    } 
    $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,但是我既不能安全地访问页面,也不能不安全地从web(虽然在本地仍然有效)。

    $HTTP["scheme"] == "http" {
        $HTTP["host"] =~ "^(.*):1080" {
            url.redirect = (".*" => "https://%1[=12=]")
        }
        else $HTTP["host"] =~ ".*" {
            url.redirect = (".*" => "https://%0[=12=]")
        }
    }
    $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. 解决方案的第二部分是对配置文件中的重定向代码进行文本上的小改动,以过滤端口而不是协议(以前的代码也可能有效,但尚未测试) ).这是经过更改和测试的代码:

$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/" )
   }
}