Compartir a través de


Habilitación de la compatibilidad con HTTPS para Microsoft Connected Cache en Windows

En este artículo se proporcionan instrucciones para habilitar la compatibilidad con HTTPS en los nodos de Microsoft Connected Cache for Enterprise y Education que se ejecutan en una máquina host de Windows.

El proceso de instalación requiere generar una solicitud de firma de certificado (CSR) en el equipo host, firmar la CSR mediante PKI pública o empresarial y, a continuación, importar de nuevo a la máquina host.

Requisitos previos

Antes de configurar la funcionalidad HTTPS, asegúrese de que se cumplen los siguientes requisitos:

  • El nodo de caché está en la versión de software de disponibilidad general

    1. Abra Azure Portal y vaya al recurso Caché conectada para empresas que hospeda los nodos de caché.
    2. En Administración de nodos de caché, busque el nodo de caché en el que desea habilitar HTTPS.
    3. Compruebe que el nodo está en la versión de disponibilidad general: debe mostrar "Sí" o "N/A" en la columna Migrada .
    4. Si no está en la versión de disponibilidad general ("No" en la columna Migrado ), seleccione el nodo de caché, vaya a la pestaña Implementación y siga las instrucciones para volver a implementar la caché conectada.
  • Acceso a una entidad de certificación (CA)

    Necesitará acceso a la PKI empresarial o a una CA pública. Si usa PKI empresarial, compruebe los requisitos de su organización para enviar una CSR a la CA.

  • Métodos de conexión de cliente de documentos

    Tenga en cuenta la dirección IP o el nombre de host (FQDN) que usan los clientes para conectarse al servidor de caché conectada. Este valor se usará como entrada de nombre alternativo de firmante (SAN) durante el proceso de generación de una CSR.

  • Garantizar la disponibilidad del puerto 443

    Para establecer una conexión HTTPS con la caché conectada, el puerto 443 debe estar disponible en el equipo host. Ejecute el siguiente comando para comprobar:

      netstat -an | findstr :443
    
    Ejemplo de salida Significado
    ESCUCHA DE TCP 0.0.0.0:443 0.0.0.0:0 El puerto 443 está abierto y escucha las conexiones entrantes. Continúe con la configuración de HTTPS.
    Sin salida El puerto 443 no está en uso o no está escuchando. Continúe con la configuración de HTTPS.
    TCP [su IP]:443 [DIRECCIÓN IP remota]:[puerto] ESTABLECIDO El puerto 443 se usa activamente en una conexión. Debe detener el servicio en conflicto antes de que la caché conectada pueda usar el puerto 443.
  • Comprobación de la configuración del proxy corporativo

    Si el firewall o el proxy corporativo interceptan el tráfico HTTPS al servidor de caché conectada (por ejemplo, mediante la inspección tls), la validación de certificados siempre producirá un error independientemente de la configuración del certificado.

Para obtener más información sobre cualquiera de los requisitos previos, consulte la página de referencia HTTPS en Windows.

Generación de una solicitud de firma de certificado (CSR)

Importante

Cada nodo de caché necesita su propio certificado o CSR (no se puede compartir):

  • Use nombres coherentes: mcc-node1.company.com, mcc-node2.company.com, etc.
  • Documente qué certificado pertenece a qué nodo
  • Los certificados comodín no funcionarán. El certificado o CSR que se usa para la conexión HTTPS a la caché conectada está vinculado de forma única a cada nodo de caché por motivos de seguridad.
  1. Abra PowerShell como administrador y vaya a la carpeta Caché conectada que contiene sus scripts de PowerShell.

    Ejecute el siguiente comando para ir a esta carpeta de scripts de caché conectada:

       cd (deliveryoptimization-cli mcc-get-scripts-path)
    
  2. Configure los parámetros para generateCsr.ps1 y ejecute el script con los valores especificados.

    Sintaxis básica

       .\generateCsr.ps1 [Required Parameters] [Subject Parameters] [SAN Parameters]
    

    Parámetros necesarios

    Parámetro Descripción
    -algo Algoritmo de certificado: RSA, EC, ED25519o ED448
    -keySizeOrCurve Para RSA: tamaño de clave (2048, 3072, 4096). Para EC: nombre de curva (prime256v1, secp384r1). Para ED25519 y ED448: no se necesita ningún tamaño de clave.
    -csrName Nombre deseado para el archivo CSR
    -RunTimeAccountName Cuenta que ejecuta el software de caché conectada. Debe ser una variable de PowerShell que contenga el nombre de usuario de la cuenta que quiere designar como cuenta en tiempo de ejecución de caché conectada. Por ejemplo, $User = "LocalMachineName\Username" para una cuenta de usuario local. Si usa una cuenta de servicio administrada de grupo (gMSA), debe tener el formato "Domain\Username$".
    -mccLocalAccountCredential Un objeto de credencial de PowerShell para la cuenta en tiempo de ejecución de caché conectada. Esto solo es necesario si usa una cuenta de usuario local, una cuenta de usuario de dominio o una cuenta de servicio. El comando $myLocalAccountCredential = Get-Credential se puede usar para poner en cola la GUI de recuperación de credenciales.

    Nota

    Si usa una cuenta en tiempo de ejecución de gMSA, use el parámetro -RunTimeAccount en lugar de -RunTimeAccountName.

    Esta discrepancia se corregirá en la próxima versión del instalador de Windows.

    Parámetros del asunto

    Parámetro Obligatorio Descripción Ejemplo
    -subjectCommonName Nombre común del certificado "localhost", "example.com"
    -subjectCountry No Código de país de dos letras "US", "CA", "GB"
    -subjectState No Estado o provincia "WA", "TX", "Ontario"
    -subjectOrg No Nombre de la organización "MyCompany", "ACME Corp"

    Advertencia

    La configuración de SAN es fundamental para la validación de certificados. El certificado debe coincidir exactamente con la forma en que los clientes se conectan a la caché conectada; de lo contrario, los clientes omiten el nodo de caché.

    Por ejemplo, si los clientes se conectan a través de la dirección 192.168.1.100 IP pero el certificado solo tiene -sanDns "server.local", se produce un error en la validación del certificado.

    Nombres alternativos del firmante (se requiere al menos uno)

    Parámetro Descripción Ejemplo
    -sanDns Nombres DNS (separados por comas) "localhost,example.com,api.example.com"
    -sanIp Direcciones IP (separadas por comas) "127.0.0.1,192.168.1.100"
    -sanUri URI (separados por comas) "https://example.com,http://localhost"
    -sanEmail direcciones Email (separadas por comas) "admin@example.com,user@domain.com"
    -sanRid Identificadores registrados (separados por comas)
    -sanDirName Nombres de directorio (separados por comas)
    -sanOtherName Otros nombres (separados por comas)

    Para obtener más detalles y ejemplos basados en escenarios en los parámetros de script CSR, consulte REFERENCIA DE HTTPS en Windows.

  3. Valide que el proceso de generación de CSR se completó correctamente.

    Si encuentra errores, busque el archivo con GenerateCsr.log marca de tiempo en la carpeta especificada en la salida del script. Busque la línea de salida que comienza por "Comprobar registros para obtener información detallada del error:" El directorio termina con (...\Certificates\logs).

    • Formato de archivo: GenerateCsr_YYYYMMDD-HHMMSS.log
    • Ejemplo: GenerateCsr_20251201_143022.log es un archivo creado el 1 de diciembre de 2025 a las 2:30:22 p.m.
  4. Busque el archivo CSR generado en la carpeta Certificados en el equipo host y transfiéralo si es necesario.

    La ubicación de la carpeta Certificados se especifica en la salida del script, empezando por "Archivo CSR creado en: ...". El directorio termina con (...\Certificates\certs).

Firma de la CSR

  1. Seleccione una entidad de certificación (CA) pública o empresarial para firmar la CSR.

    Importante

    La firma de ca debe coincidir con un certificado raíz en el almacén raíz de confianza del cliente.

    La mayoría de los clientes usan su infraestructura PKI empresarial para firmar su CSR. Si necesita usar una entidad de certificación pública, tenga en cuenta estos recursos:

  2. Envíe la CSR a la entidad de certificación elegida y guarde el certificado firmado.

    El certificado firmado debe estar en formato .crt con codificación X.509. Si la entidad de certificación proporciona otros formatos, compruebe la referencia HTTPS en Windows sobre cómo convertir al formato .crt.

    Nota

    La caché conectada no admite actualmente formatos protegidos con contraseña (.pfx, .p12, .p7b). La compatibilidad con estos se agregará pronto como parte de nuestra hoja de ruta de automatización de certificados.

  3. Compruebe que el certificado firmado tiene el formato correcto.

    Confirmar codificación PEM:

    Get-Content "xxxx.crt" | Select-String "BEGIN CERTIFICATE"
    

    Salida correcta esperada:

    -----BEGIN CERTIFICATE-----
    
  4. Mueva el certificado firmado a la carpeta Certificados de la máquina host de Windows.

    Esta será la misma carpeta donde encontró inicialmente la CSR después de generarla: (...\Certificates\certs).

    Precaución

    No comparta claves privadas, la caché conectada solo requiere el certificado firmado.

Importación de un certificado TLS firmado

Nota

El importCert script no admite actualmente:

  • Almacene en caché los nodos que se ejecutan en Windows Server 2022 o Windows Server 2025 con una cuenta en tiempo de ejecución de gMSA.
  • El parámetro -RunTimeAccountName cuando se usa gMSA en versiones compatibles de Windows (use -RunTimeAccount en su lugar).

Ambos problemas se resolverán en la próxima versión del instalador de Windows.

  1. Abra PowerShell como administrador y vaya a la carpeta Caché conectada que contiene sus scripts de PowerShell.

  2. Configure los parámetros para importCert.ps1 y ejecute el script con los valores especificados.

    Sintaxis básica

      .\importCert.ps1 [Required Parameters]
    

    Parámetros necesarios

    Parámetro Descripción
    -certName Nombre de archivo completo del certificado TLS firmado (con o sin extensión .crt)
    -RunTimeAccountName Cuenta que ejecuta el software de caché conectada. Debe ser una variable de PowerShell que contenga el nombre de usuario de la cuenta que quiere designar como cuenta en tiempo de ejecución de caché conectada. Por ejemplo, $User = "LocalMachineName\Username" para una cuenta de usuario local. Si usa una cuenta de servicio administrada de grupo (gMSA), debe tener el formato "Domain\Username$".
    -mccLocalAccountCredential Un objeto de credencial de PowerShell para la cuenta en tiempo de ejecución de caché conectada. Esto solo es necesario si usa una cuenta de usuario local, una cuenta de usuario de dominio o una cuenta de servicio. Por ejemplo, $myLocalAccountCredential = Get-Credential.

    Ejemplo

      .\importCert.ps1 `
        -RunTimeAccountName $myLocalAccountCredential.Username `
        -LocalAccountCredential $myLocalAccountCredential `
        -certName "myTlsCert.crt"
    
  3. Compruebe que el proceso de importación se completó correctamente.

    Si encuentra errores, busque el archivo con ImportCert.log marca de tiempo en la carpeta especificada en la salida del script. Busque la línea de salida que comienza con "Puede encontrar registros aquí: ..."

    • Formato de archivo: ImportCert_YYYYMMDD-HHMMSS.log
    • Ejemplo: ImportCert_20251201_143022.log es un archivo creado el 1 de diciembre de 2025 a las 2:30:22 PM
  4. Asegúrese de que la caché conectada es accesible para los clientes externos a través del puerto 443.

    Nota

    Compruebe de nuevo que el puerto 443 está disponible antes de configurar el reenvío de puertos: netstat -an | findstr :443

    Reenvío del tráfico del puerto 443

    Use el siguiente comando para puentear el tráfico desde el equipo host de Windows al contenedor de caché conectada:

     $ipFilePath = Join-Path ([System.Environment]::GetEnvironmentVariable("MCC_INSTALLATION_FOLDER", "Machine")) "wslIp.txt"
     $ipAddress = (Get-Content $ipFilePath | Select-Object -First 1).Trim()
     netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=$ipAddress
    

    Esto configura un proxy de puerto para que el tráfico entrante en el puerto 443 se redirija a la dirección IP interna del contenedor.

    Abra el puerto 443 en el firewall.

    Incluso con el reenvío de puertos, Firewall de Windows podría bloquear el tráfico entrante o saliente en el puerto 443. Use los siguientes comandos para asegurarse de que el tráfico HTTPS puede fluir libremente hacia y desde la caché conectada.

     [void](New-NetFirewallRule -DisplayName "WSL2 Port Bridge (HTTPS)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort "443")
     [void](New-NetFirewallRule -DisplayName "WSL2 Port Bridge (HTTPS)" -Direction Outbound -Action Allow -Protocol TCP -LocalPort "443")
    

Para obtener instrucciones sobre cómo validar aún más la importación de certificados, consulte la página HTTPS en validación de Windows.

Deshabilitación de la compatibilidad con HTTPS

Si necesita revertir la memoria caché conectada a la comunicación solo HTTP, siga estos pasos. Este proceso no eliminará nada de la carpeta Certificados, incluidos los archivos CSR, los certificados y los registros.

  1. Abra PowerShell como administrador y vaya a la carpeta de scripts de PowerShell.

  2. Configure los parámetros para disableTls.ps1 y ejecute el script con los valores sepcificados.

    Sintaxis básica

      .\disableTls.ps1 [Required Parameters]
    

    Parámetros necesarios

    Parámetro Descripción
    -RunTimeAccountName Cuenta que ejecuta el software de caché conectada. Debe ser una variable de PowerShell que contenga el nombre de usuario de la cuenta que quiere designar como cuenta en tiempo de ejecución de caché conectada. Por ejemplo, $User = "LocalMachineName\Username" para una cuenta de usuario local. Si usa una cuenta de servicio administrada de grupo (gMSA), debe tener el formato "Domain\Username$".
    -mccLocalAccountCredential Un objeto de credencial de PowerShell para la cuenta en tiempo de ejecución de caché conectada. Esto solo es necesario si usa una cuenta de usuario local, una cuenta de usuario de dominio o una cuenta de servicio. Por ejemplo, $myLocalAccountCredential = Get-Credential.

    Nota

    Si usa gMSA, use el parámetro -RunTimeAccount en lugar de -RunTimeAccountName. Esta discrepancia se corregirá en los scripts pronto.

    Ejemplo

      .\disableTls.ps1 `
        -RunTimeAccountName $myLocalAccountCredential.Username `
        -LocalAccountCredential $myLocalAccountCredential `
    
  3. Compruebe que el proceso de deshabilitación se completó correctamente.

  4. Después de deshabilitar HTTPS, las solicitudes HTTP deben funcionar mientras que las solicitudes HTTPS deben producir un error. Consulte la página HTTPS en validación de Windows para obtener instrucciones sobre cómo probar esto.

Pasos siguientes