Назад | Перейти на главную страницу

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).

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

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