Обратный прокси-сервер субдомена IIS на основе имени хоста

У меня есть виртуальная машина в Azure, на которой запущены три приложения с собственным хостингом (не размещенные в IIS) на трех разных портах. .

Я могу получить к ним доступ по указанным ниже адресам:

  • my-server.cloudapp.azure.com:8080
  • my-server.cloudapp.azure.com:8081
  • my-server.cloudapp. azure.com:8082

Я приобрел доменное имя ( my-server.company.com ) и хочу создать три поддомена, указывающих на каждое соответствующее приложение

  • application-1. как я могу добавить ssl?

    Требуется ли каждому поддомену свой собственный сертификат ssl, и в этом случае как это может работать с настройкой выше (нет веб-сайтов iis для привязки каждого сертификата). Или я могу просто использовать сертификат для my-server.company.com, а затем разгрузить его на обратном прокси-сервере?

    Окончательное решение

    Я создал DNS-записи CNAME следующим образом:

    CNAME | application-1 | my-server.cloudapp.azure.com
    CNAME | application-2 | my-server.cloudapp.azure.com
    CNAME | application-2 | my-server.cloudapp.azure.com
    

    Затем на лазурной виртуальной машине я запускаю Caddy (веб-сервер HTTP / 2 с автоматическим HTTPS) со следующим файлом Caddyfile:

    application-1.my-server.company.com {
        proxy / localhost:8080 {
            proxy_header Host {host}
        }
    }
    
    application-1.my-server.company.com {
        proxy / localhost:8081 {
            proxy_header Host {host}
        }
    }
    
    application-1.my-server.company.com {
        proxy / localhost:8082 {
            proxy_header Host {host}
        }
    }
    

    Красота этого заключается в том, что Caddy запускается впервые, он автоматически включает HTTPS для всех ваших сайтов (используя автоматически сгенерированные сертификаты из Let's Encrypt), а также перенаправит все HTTP-запросы на их эквивалент HTTPS.

    Эта настройка также означала, что мне не нужно было устанавливать IIS на ВМ.

    ПРИМЕЧАНИЕ: firewall-cmd --permanent --add -...

    Я устанавливаю openldap с phpldapadmin на 2 разных серверах CENTOS 7 со следующей конфигурацией:

    openldap server:

    firewall-cmd --permanent --add-service=ldap
    firewall-cmd --permanent --add-port=389/tcp
    firewall-cmd --reload
    yum install -y openldap openldap-clients openldap-servers
    slappasswd
    

    установите проход и обратите внимание на хэш

    в: /etc/openldap/slapd.d/cn=config/olcDatabase= {2} bdb.ldif

    Изменение:

    olcSuffix: dc = mydomain , dc = com

    olcRootDN: cn = пользователь , dc = mydomain , dc = com

    olcRootPW: {SSHA} therandomhashfromslappswd] в [1112956] /usr/share/openldap-servers/slapd.ldif[12150 visibleChange:

    Строка 134: n = auth "прочитано

    dn.base =" cn = пользователем , dc = mydomain , dc = com "прочитано * none Строка 144:

    olcSuffix: dc = mydomain , dc = com Строка 145: olcRootDN:

    cn = user ,dc = mydomain , dc = com

    add:

    olcRootPW: {SSHA} therandomhashfromslappswd

    в /etc/openldap/ldap.conf:

    change:

    BASE dc = mydomain, dc = com

    URI ldap: //hostname.domain.local

    Выполнить:

    slaptest -u
    

    проверка файла конфигурации прошла успешно

    Я получаю ошибку контрольной суммы, как показано ниже, но я игнорирую.

    54a39508 ldif_read_file: ошибка контрольной суммы на "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"

    54a39508 ldif_read_file: ошибка контрольной суммы на лист / мой сервер), то сервер отправляет всю (?) цепочку клиенту? ...

    Если мой веб-сервер (последняя версия Apache) имеет действительную (не истекшую или отозванную) цепочку сертификатов Verisign (корневой -> промежуточный -> конечный / мой сервер), то сервер отправляет вся (?) цепочка до клиента? Требуется ли веб-клиент (например, последняя версия Chrome) для поиска каждого из этих одинаковых сертификатов в Интернете, особенно если клиент уже доверяет корневому ЦС?

    Что произойдет, если клиент не сможет связаться с Verisign? (например, установка LAMP на ноутбуке без Wi-Fi).

6
задан 2 May 2016 в 06:24
2 ответа

Если вы прочитали RFC 5246, глава 7.4.2 , вы обнаружите, что:

список_сертификатов
Это последовательность (цепочка) сертификатов. Отправителя сертификат ДОЛЖЕН быть первым в списке. Каждый следующий сертификат ДОЛЖЕН напрямую удостоверять предыдущий. Потому как проверка сертификата требует распространения корневых ключей независимо, самозаверяющий сертификат, указывающий корень центр сертификации МОЖЕТ быть исключен из цепочки под предположение, что удаленный конец уже должен обладать им, чтобы подтвердите это в любом случае.

объясняет это довольно хорошо. Действительно ли сервер делает это, зависит от того, как его настроил системный администратор. Многие плохо настроенные серверы «уходят», не выполнив описанного выше, из-за того, что многие клиенты могут получить свои сертификаты CA, используя URL-адрес, указанный в расширении AIA.

Многие клиенты также кэшируют сертификаты, которые они получают / загружают, чтобы уменьшить нагрузку на выборку при каждом построении цепочки.Chrome в Windows использует Microsoft CAPI для управления своими сертификатами (так же, как IE), который кэширует сертификаты. Chrome в Linux / OSX использует NSS Mozilla для управления своими сертификатами, которые также кэшируют сертификаты. Так что есть вероятность, что если вы использовали свой веб-сайт в Интернете, все сертификаты высшего ЦС будут кэшированы в вашей системе, и переход в автономный режим будет работать (в любом случае).

Однако некоторые ЦС используют OCSP для проверки отзыва. Если вы не в сети, то клиент OCSP не может связаться с респондентом OCSP для получения информации об отзыве. Что происходит в этом сценарии, зависит от конфигурации вашего клиентского программного обеспечения. По умолчанию большинство браузеров «мягко терпят неудачу», то есть игнорируют тот факт, что с респондентом OCSP невозможно связаться, и предполагают, что все в порядке. Некоторые из них могут быть настроены на «жесткий сбой», при котором они не смогут выполнить проверку отзыва, если с респондентом OCSP невозможно связаться.

10
ответ дан 3 December 2019 в 00:15

То, что отправляет ваш сервер, конечно же, зависит от того, как вы его настроили.

Он отправит содержимое файла SSLCertificateChainfile , если он настроен, и содержимое вашего SSLCertificateFile .

Им не нужен корневой сертификат CA, но, вероятно, следует включать промежуточный сертификат, чтобы клиент мог установить цепочку доверия.

Не знаю, что происходит в автономном сценарии, но когда ты не в сети, ты все равно не можешь пользоваться моими производственными службами, так что это не проблема, которую я потрудился исследовать. Пожалуйста, проверьте это сами.

0
ответ дан 3 December 2019 в 00:15

Теги

Похожие вопросы