我想在 Lighttpd 中启用 HTTPS。我有一个“密钥”文件(使用 openssl 创建),以及由 SSL 提供商生成的证书和中间证书,但我不确定这些文件如何在 Lighttpd 中使用。看起来配置文件需要一个“pem”格式的文件。
为了完整起见,我还将包括生成密钥库和 CSR 文件的步骤。
企业社会责任一代
在终端上,键入(并输入您的详细信息)。
openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.csr
HTTPS 配置
1)您需要将您的密钥库与颁发者返回的证书合并。这可以在文本编辑器中完成,但我建议在命令行上完成。
cat server.key domain_com.crt > domain.pem
2) 要在 Lighttpd 中启用 HTTPS,请打开 lighttpd.conf 并输入以下内容
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "[path to domain.pem]"
ssl.ca-file = "[path to CA bundle containing root and intermediate certs]"
}
3)确保服务器有读取证书文件的相关权限。
4)重启Lighttpd服务。
创建一个目录来创建CSR和公钥。
mkdir /etc/lighttpd/ssl/
cd /etc/lighttpd/ssl/
我们可以通过运行以下命令来创建CSR和密钥文件。
openssl req -new -newkey rsa:2048 -nodes -keyout CERT.key -out CERT.csr
此命令将要求输入详细信息。 3)创建CSR后,向任何证书提供商请求SSL证书或创建自签名证书供内部使用。
openssl x509 -req -days 365 -in CERT.csr -signkey CERT.key -out CERT.crt
4)我们将在目录 abc.com.crt 中获得创建的证书文件。通过组合密钥文件和证书文件创建 pem 文件。
cat CERT.key CERT.crt > CERT.pem
5)在lighttpd.conf中
server.modules = (
"mod_access","mod_auth","mod_fastcgi","mod_redirect"
)
$HTTP["scheme"] == "http" {
$HTTP["host"] =~ ".*" {
url.redirect = (".*" => "https://%0$0")
}
}
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/CERT.pem"
}
或者在索引文件和lighttpd设置中 在index.php中
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') { header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); exit(); }
在 lighttpd.conf 中
server.modules = (
"mod_rewrite",
"mod_redirect",
"mod_alias",
"mod_openssl",
"mod_access",
"mod_auth",
"mod_fastcgi",
"mod_accesslog" )
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/CERT.pem"
proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 8443 ) ) )
}