在 lighttpd 上配置 https

Configuring https on lighttpd

我正在标准 Alpine Linux/3.9.0、运行 PHP/7.2.14 和 lighttpd/1.4.52 (ssl) 上配置 https。我有我的域名(我称之为 "mydomain.com")并且我已经得到了 ssl 文件 mydomain.crt、mydomain.p7b、mydomain.ca-bundle、mydomain.key、和 mydomain.pem.

-当我在 mydomain.com:443 使用 http 搜索时,我访问了我的网站。

-当我在 mydomain.com 使用 https 搜索时,连接超时。

我/etc/lighttpd/lighttpd.conf配置不正确,我想这与我的“.crt”文件有关。我搜索了 Whosebug 并通过谷歌搜索,但最有用的两个来源是:

https://tecadmin.net/configure-ssl-in-lighttpd-server/
https://www.digicert.com/ssl-certificate-installation-lighttpd.htm

这是默认配置文件 added/modified /etc/lighttpd/lighttpd.conf:

server.port = 443
$SERVER["socket"] == ":443" {
   ssl.engine = "enable"
   ssl.pemfile = "/etc/lighttpd/mydomain.pem"
   ssl.ca-file = "/etc/lighttpd/mydomain.crt"
   server.name = "mydomain"
   server.document-root = "/var/www/localhost/htdocs"
}

我也试过更换
ssl.ca-file = "/etc/lighttpd/mydomain.crt"

ssl.ca-file = "/etc/lighttpd/mydomain.ca-bundle"

我原以为/etc/lighttpd/mydomain.crt 可以正常工作,但我只能通过http(连接成功)访问443 端口,不能通过https(连接超时)访问。我有一个 .crt 文件 (mydomain.crt)。我是否应该将文件 mydomain.ca-bundle 修改为 .crt 文件?

好吧,肇事者就是这条线:

server.port = 443

我是这方面的新手,我没有意识到您应该打开端口 80 和端口 443 以启用 https。 lighttpd 默认使用 80,所以我只需要注释掉这一行:

# server.port = 443

未来读者请注意:因此,对于 https,端口 80 和 443 也必须在您的路由器上转发。