Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporciona más detalles sobre el flujo de configuración HTTPS de Linux en la caché conectada.
Requisitos previos
Métodos de conexión de cliente
Pruebe lo siguiente para determinar el método de conexión adecuado al servidor de caché conectada con el fin de configurar la compatibilidad con HTTPS.
Comprobación de la configuración de la directiva de optimización de distribución
Si la red usa la opción DHCP 235 para anunciar el servidor de caché conectada:
resolvectl status | grep -A 10 "Link"Busque información de DOMINIO o DNS proporcionada por DHCP que pueda hacer referencia al servidor de caché conectada.
Comprobación de los archivos de configuración de red
En función de la distribución de Linux, la configuración de red puede contener referencias estáticas de caché conectada:
# 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/interfacesPrueba de conectividad con el servidor de caché conectada
El siguiente comando comprueba la conectividad TCP con el puerto 80 en el servidor de caché conectada:
nc -zv [insert-mcc-server-ip-or-hostname] 80Salida esperada:
Connection to [server] 80 port [tcp/http] succeeded!Para obtener información más detallada:
curl -v -I http://[insert-mcc-server-ip-or-hostname]/
Disponibilidad del puerto 443
Comando alternativo para comprobar la disponibilidad del puerto 443:
sudo netstat -tulpn | grep :443Compruebe qué proceso usa actualmente el puerto 443:
sudo lsof -i :443
Detalles de configuración del firewall
Use lo siguiente para comprobar si el firewall intercepta el tráfico HTTPS al servidor de caché conectada (por ejemplo, mediante la inspección de TLS).
Distribuciones comunes de 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 (firewalld):
# 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 (tradicional):
# 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
Consideraciones de SELinux
Si ejecuta RHEL/CentOS/Fedora con SELinux habilitado, es posible que tenga que configurar las directivas de 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
Generación de CSR
Ejemplos de parámetros de Scenario-Based
Revise los ejemplos de parámetros basados en escenarios y realice modificaciones en generateCsr.sh el comando en consecuencia:
Oficina única: solo dirección IP
Escenario: sucursal pequeña donde los clientes están configurados para conectarse a la caché conectada mediante una dirección IP estática (por ejemplo, a través de la directiva DOCacheHost establecida en "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"
Enterprise Standard: nombre de host DNS
Escenario: entorno empresarial en el que los clientes se conectan a través del nombre de host estandarizado (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"
Entorno de detección de DHCP
Escenario: entorno que usa la opción DHCP 235 para la detección de caché conectada, donde los clientes pueden conectarse mediante el nombre de host real del servidor o el nombre proporcionado por 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"
Entorno híbrido: conexiones de cliente mixtas
Escenario: entorno mixto durante la migración en el que algunos clientes heredados siguen usando direcciones IP mientras que los clientes más recientes usan nombres DNS. Abarca ambos métodos de conexión.
./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"
Multisitio con nomenclatura regional
Escenario: organización grande con varios nodos de caché conectada mediante una convención de nomenclatura coherente (formato mcc-region-site). Este ejemplo es para un nodo de centro de datos de Seattle.
./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"
Entorno de desarrollo y pruebas
Escenario: entorno de desarrollo con requisitos de nomenclatura relajados. Admite pruebas de localhost y acceso a la red de laboratorio.
./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"
Alta seguridad con curva elíptica
Escenario: una organización consciente de la seguridad que requiere criptografía ECC moderna para mejorar el rendimiento y el cumplimiento de los estándares de seguridad más recientes.
./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"
Implementación de máquinas virtuales o en la nube
Escenario: nodo de caché conectada implementado en una máquina virtual o máquina virtual en la nube con conectividad pública y privada. Los clientes del entorno local se conectan a través de ip/nombre de host privado, mientras que los clientes basados en la nube pueden usar el nombre DNS público.
./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"
Entorno de contenedor de Docker
Escenario: Caché conectada que se ejecuta en el contenedor de Docker, donde los clientes se conectan a la dirección IP del equipo host, pero el certificado debe tener en cuenta las redes de contenedor.
./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"
Firmar CSR
Conversión al tipo de archivo .crt
Si recibe
.cer:mv xxxx.cer xxxx.crtO con OpenSSL:
openssl x509 -in xxxx.cer -out xxxx.crtSi recibe
.der:openssl x509 -inform DER -in xxxx.der -out xxxx.crt
Comprobación del contenido del certificado
Después de la conversión, compruebe que el certificado es correcto:
openssl x509 -in xxxx.crt -text -noout
Busca:
- Asunto: Debe coincidir con el asunto de CSR
- Nombre alternativo del firmante: Debe contener todos los SAN configurados
- Validez: Fechas no anteriores y no posteriores
- Algoritmo de firma: Debe coincidir con el algoritmo elegido (RSA, EC, etc.)