es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo configurar Service Fabric para admitir solo conexiones HTTPS y no HTTP.

Tengo un clúster de Azure Service Fabric creado en un entorno de prueba local y desplegué APIs web basadas en microservicios, funciona bien sin problemas. Pero me gustaría habilitar el tráfico HTTPS a nivel de clúster y detener las solicitudes HTTP.

https://mytestsf.westus.cloudapp.azure.com:8800/ => esperando que este funcione

http://mytestsf.westus.cloudapp.azure.com:8800/ => esperando que este NO funcione

¿Es posible habilitar el soporte solo para el tráfico HTTPS a nivel de Azure Service Fabric? Si es así, ¿cómo?

PD: Este clúster de Service Fabric no tiene ningún componente de red externa como Traffic Manager o Application Gateway frente a él, ya que es un entorno de prueba local.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible admitir solo el tráfico HTTPS a nivel de Azure Service Fabric. Sigue los pasos a continuación para lograrlo:

    1. Crea un certificado para el tráfico HTTPS utilizando un proveedor de certificados SSL (por ejemplo, Let’s Encrypt, DigiCert, GoDaddy).
    2. Agrega el certificado al almacén de certificados del clúster utilizando el siguiente comando de PowerShell:
      powershell
      Add-AzCertificate -ResourceGroupName <nombre-del-grupo-de-recursos> -Name <nombre-del-certificado> -Certificate <ruta-al-certificado>
    3. Abre el archivo ServiceManifest.xml de cada microservicio y agrega el punto de conexión para el tráfico HTTPS:
      xml
      <endpoint name="ServiceEndpoint" protocol="https" port="8800" type="Input"></endpoint>
    4. Actualiza el archivo ApplicationManifest.xml para agregar el certificado y especificar que solo se debe permitir el tráfico HTTPS:
      xml
      <certificates>
      <endpointcertificate x509findtype="FindByThumbprint" x509findvalue="<huella-del-certificado>"></endpointcertificate>
      </certificates>
      <policies>
      <endpointbindingpolicy endpointref="ServiceEndpoint" certificateref="<nombre-del-certificado>"></endpointbindingpolicy>
      </policies>
    5. Elimina el punto de conexión para el tráfico HTTP del archivo ServiceManifest.xml de cada microservicio:
      xml
      <endpoint name="ServiceEndpoint" protocol="http" port="8800" type="Input"></endpoint>
    6. Vuelve a implementar los microservicios en el clúster.

    Después de seguir estos pasos, solo se permitirá el tráfico HTTPS en el clúster y se rechazará el tráfico HTTP.

Comments are closed.