lighttpd с несколькими IP-адресами, каждый с сертификатом UCC и множеством имен хостов

Я бы хотел, чтобы 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).

1 ответ

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

$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"
}
Другие вопросы по тегам