Справочник по поддержке HTTPS для Linux для подключенного кэша Майкрософт

В этой статье приведены дополнительные сведения о потоке установки LINUX HTTPS в подключенном кэше.

Предварительные условия

Методы подключения клиента

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

  • Проверка конфигурации политики оптимизации доставки

    Если ваша сеть использует параметр DHCP 235 для объявления сервера подключенного кэша:

    resolvectl status | grep -A 10 "Link"
    

    Найдите сведения о DNS или домене, предоставленные DHCP, которые могут ссылаться на сервер подключенного кэша.

  • Проверка файлов конфигурации сети

    В зависимости от дистрибутива Linux конфигурация сети может содержать статические ссылки на подключенный кэш:

    # For systems using NetworkManager
    cat /etc/NetworkManager/system-connections/*
    
    # For systems using netplan (Ubuntu 18.04+)
    cat /etc/netplan/*.yaml
    
    # For traditional /etc/network/interfaces
    cat /etc/network/interfaces
    
  • Проверка подключения к серверу подключенного кэша

    Следующая команда проверяет tcp-подключение к порту 80 на сервере подключенного кэша:

    nc -zv [insert-mcc-server-ip-or-hostname] 80
    

    Ожидаемые выходные данные:Connection to [server] 80 port [tcp/http] succeeded!

    Чтобы получить более подробные сведения, выполните следующие действия:

    curl -v -I http://[insert-mcc-server-ip-or-hostname]/
    

Доступность порта 443

  • Альтернативная команда проверка доступности порта 443:

    sudo netstat -tulpn | grep :443
    
  • Проверьте, какой процесс в настоящее время использует порт 443:

    sudo lsof -i :443
    

Сведения о конфигурации брандмауэра

Используйте следующую команду, чтобы проверка, если брандмауэр перехватывает трафик HTTPS к серверу подключенного кэша (например, через проверку TLS).

Распространенные дистрибутивы Linux:

Ubuntu/Debian (UFW):

# Check firewall status
sudo ufw status

# Allow port 443
sudo ufw allow 443/tcp

# Reload firewall
sudo ufw reload

# Verify rule was added
sudo ufw status numbered

RHEL/CentOS/Fedora (брандмауэр):

# Check firewall status
sudo firewall-cmd --state

# Allow port 443 temporarily (until reboot)
sudo firewall-cmd --add-port=443/tcp

# Allow port 443 permanently
sudo firewall-cmd --permanent --add-port=443/tcp

# Reload firewall
sudo firewall-cmd --reload

# List all rules
sudo firewall-cmd --list-all

iptables (традиционные):

# Check current rules
sudo iptables -L -n -v

# Add rule for port 443
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Save rules (location varies by distribution)
# For Ubuntu/Debian:
sudo iptables-save | sudo tee /etc/iptables/rules.v4

# For RHEL/CentOS:
sudo service iptables save

Рекомендации по SELinux

Если вы используете RHEL,CentOS/Fedora с включенным SELinux, может потребоваться настроить политики SELinux:

# Check SELinux status
sestatus

# Allow HTTP/HTTPS traffic
sudo setsebool -P httpd_can_network_connect 1

# If using custom ports, add them to SELinux
sudo semanage port -a -t http_port_t -p tcp 443

Создание CSR

Примеры параметров Scenario-Based

Просмотрите примеры параметров на основе сценария и внесите соответствующие изменения в команду generateCsr.sh :

Один офис — только IP-адрес

Сценарий: небольшой филиал, где клиенты настроены для подключения к подключенному кэшу с помощью статического IP-адреса (например, с помощью политики DOCacheHost, для которой задано значение "192.168.1.100").

./generateCsr.sh \
    -algo RSA \
    -keySizeOrCurve 2048 \
    -csrName "mcc-branch-office" \
    -subjectCommonName "192.168.1.100" \
    -subjectCountry "US" \
    -subjectState "TX" \
    -subjectOrg "Contoso Corp" \
    -sanIp "192.168.1.100"

Корпоративная Standard — dns hostname

Сценарий: корпоративная среда, в которой клиенты подключаются через стандартизированное имя узла (mcc-server.contoso.com).

./generateCsr.sh \
    -algo RSA \
    -keySizeOrCurve 4096 \
    -csrName "mcc-enterprise-prod" \
    -subjectCommonName "mcc-server.contoso.com" \
    -subjectCountry "US" \
    -subjectState "Washington" \
    -subjectOrg "Contoso Corporation" \
    -sanDns "mcc-server.contoso.com"

Среда обнаружения DHCP

Сценарий. Среда, использующая вариант DHCP 235 для обнаружения подключенного кэша, в которой клиенты могут подключаться с использованием фактического имени узла сервера или имени, предоставленного DHCP.

./generateCsr.sh \
    -algo RSA \
    -keySizeOrCurve 2048 \
    -csrName "mcc-dhcp-discovery" \
    -subjectCommonName "cache-server.corporate.local" \
    -subjectCountry "US" \
    -subjectState "FL" \
    -subjectOrg "Corporate IT Services" \
    -sanDns "cache-server.corporate.local,mcc-auto.corporate.local,fileserver.corporate.local"

Гибридная среда — смешанные клиентские подключения

Сценарий. Смешанная среда во время миграции, в которой некоторые устаревшие клиенты по-прежнему используют IP-адреса, а более новые клиенты используют DNS-имена. Охватывает оба метода подключения.

./generateCsr.sh \
    -algo RSA \
    -keySizeOrCurve 2048 \
    -csrName "mcc-hybrid-migration" \
    -subjectCommonName "mcc-cache.contoso.com" \
    -subjectCountry "US" \
    -subjectState "CA" \
    -subjectOrg "Contoso Inc" \
    -sanDns "mcc-cache.contoso.com,cache.contoso.local" \
    -sanIp "10.0.1.50,192.168.100.10"

Многосайтовый режим с региональным именованием

Сценарий. Крупная организация с несколькими узлами подключенного кэша, использующими согласованное соглашение об именовании (формат mcc-region-site). Этот пример предназначен для узла центра обработки данных в Сиэтле.

./generateCsr.sh \
    -algo RSA \
    -keySizeOrCurve 4096 \
    -csrName "mcc-seattle-dc1" \
    -subjectCommonName "mcc-sea-dc1.corp.contoso.com" \
    -subjectCountry "US" \
    -subjectState "Washington" \
    -subjectOrg "Contoso Corporation" \
    -sanDns "mcc-sea-dc1.corp.contoso.com,mcc-seattle.contoso.com"

Среда разработки и тестирования

Сценарий. Среда разработки со строгими требованиями к именованию. Поддерживает тестирование localhost и доступ к лабораторной сети.

./generateCsr.sh \
    -algo RSA \
    -keySizeOrCurve 2048 \
    -csrName "mcc-dev-lab" \
    -subjectCommonName "localhost" \
    -subjectCountry "US" \
    -subjectState "Dev" \
    -subjectOrg "IT Development" \
    -sanDns "localhost,mcc-dev.lab.local,devserver.local" \
    -sanIp "127.0.0.1,192.168.10.100,10.10.10.50"

Высокий уровень безопасности с эллиптической кривой

Сценарий. Организация, заботяющаяся о безопасности, требуется современное шифрование ECC для повышения производительности и соответствия новым стандартам безопасности.

./generateCsr.sh \
    -algo EC \
    -keySizeOrCurve secp384r1 \
    -csrName "mcc-secure-prod" \
    -subjectCommonName "mcc-secure.defense.gov" \
    -subjectCountry "US" \
    -subjectState "VA" \
    -subjectOrg "Department of Defense" \
    -sanDns "mcc-secure.defense.gov"

Развертывание облака или виртуальной машины

Сценарий. Узел подключенного кэша, развернутый на облачной виртуальной машине или виртуальной машине с общедоступным и частным подключением. Клиенты из локальной среды подключаются через частный IP-адрес или имя узла, а облачные клиенты могут использовать общедоступное DNS-имя.

./generateCsr.sh \
    -algo RSA \
    -keySizeOrCurve 2048 \
    -csrName "mcc-cloud-hybrid" \
    -subjectCommonName "mcc-eastus.cloudapp.azure.com" \
    -subjectCountry "US" \
    -subjectState "WA" \
    -subjectOrg "Contoso Corporation" \
    -sanDns "mcc-eastus.cloudapp.azure.com,mcc-cloud.contoso.local,mcc-vm01.contoso.com" \
    -sanIp "10.0.1.10,172.16.0.50"

Среда контейнера Docker

Сценарий. Подключенный кэш выполняется в контейнере Docker, где клиенты подключаются к IP-адресу хост-компьютера, но сертификат должен учитывать сеть контейнера.

./generateCsr.sh \
    -algo RSA \
    -keySizeOrCurve 2048 \
    -csrName "mcc-docker-host" \
    -subjectCommonName "mcc-docker.company.local" \
    -subjectCountry "US" \
    -subjectState "CA" \
    -subjectOrg "Company IT" \
    -sanDns "mcc-docker.company.local,localhost" \
    -sanIp "192.168.1.100,172.17.0.1,127.0.0.1"

Подписывание CSR

Преобразование в тип файла CRT

  • Если вы получаете .cer:

    mv xxxx.cer xxxx.crt
    

    Или с помощью OpenSSL:

    openssl x509 -in xxxx.cer -out xxxx.crt
    
  • Если вы получаете .der:

    openssl x509 -inform DER -in xxxx.der -out xxxx.crt
    

Проверка содержимого сертификата

После преобразования проверьте правильность сертификата:

openssl x509 -in xxxx.crt -text -noout

Ищите:

  • Тема: Должен соответствовать вашему субъекту CSR
  • Альтернативное имя субъекта: Должен содержать все настроенные сети SAN
  • Обоснованность: Даты "Не до" и "Не после"
  • Алгоритм подписи: Должен соответствовать выбранному алгоритму (RSA, EC и т. д.)

Дополнительные ресурсы