Я хотел бы, чтобы lighttpd работал с сертификатами UCC, но я не могу понять правильный синтаксис.

По сути, для каждого IP-адреса у меня есть один сертификат UCC и несколько имен хостов.

$SERVER["socket"] == "10.0.0.1:443" {
    ssl.engine                              = "enable"
    ssl.ca-file                             = "/etc/ssl/certs/the.ca.cert.pem"
    ssl.pemfile                             = "/etc/ssl/private/websitegroup1.com.pem"
    $HTTP["host"] =~ "mywebsite.com" {
            server.document-root    = /var/www/mywebsite.com/htdocs"
    }

Приведенный выше код отлично работает для одного имени хоста, но как только я пытаюсь настроить другое имя хоста (обратите внимание на тот же сертификат SSL):

$SERVER["socket"] == "10.0.0.1:443" {
    ssl.engine                              = "enable"
    ssl.ca-file                             = "/etc/ssl/certs/the.ca.cert.pem"
    ssl.pemfile                             = "/etc/ssl/private/websitegroup1.com.pem"
    $HTTP["host"] =~ "anotherwebsite.com" {
            server.document-root    = /var/www/anotherwebsite.com/htdocs"
    }

... я получаю такую ​​ошибку: Duplicate config variable in conditional 6 global/SERVERsocket==10.0.0.1:443: ssl.engine

Есть ли способ поставить условие, чтобы ssl.engineвключить его , только если он еще не включен? Или мне нужно поместить все мои $ HTTP ["host"] в один и тот же $ SERVER ["socket"] (что усложнит мне управление конфигурационными файлами), или есть какой-то совершенно другой способ сделать это?

Это также нужно повторить для нескольких IP-адресов (так что у меня будет куча и SERVER["socket"] == 10.0.0.2:443"т. Д.), Каждый с одним сертификатом UCC и множеством имен хостов.

Неужели я ошибаюсь? Моя цель - сохранить IP-адреса, когда у меня есть много связанных веб-сайтов, которые могут использовать SSL-сертификат, но все же нуждаются в собственной версии, доступной по SSL, с соответствующего имени хоста (вместо одного secure.mywebsite.com).

answer

Итак, единственное, что вам нужно изменить для каждого хоста, - это корень документа? Вы пытались поместить совпадение хоста вне совпадения сокета и не повторять строфы сокета? например

$SERVER["socket"] == "10.0.0.1:443" {
    ssl.engine                              = "enable"
    ssl.ca-file                             = "/etc/ssl/certs/the.ca.cert.pem"
    ssl.pemfile                             = "/etc/ssl/private/websitegroup1.com.pem"
}

$HTTP["host"] =~ "mywebsite.com" {
    server.document-root    = /var/www/mywebsite.com/htdocs"
}

$HTTP["host"] =~ "anotherwebsite.com" {
    server.document-root    = /var/www/anotherwebsite.com/htdocs"
}