Configuración de HTTPS con capa de sockets seguros (SSL) para Azure DevOps local

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Puede reforzar la seguridad de la implementación de Azure DevOps Server mediante su configuración para usar el protocolo de transferencia de hipertexto seguro (HTTPS) con capa de sockets seguros (SSL). Puede decidir requerir este protocolo, que maximiza la seguridad de la implementación, o decidir admitir HTTPS con SSL además del protocolo predeterminado, HTTP. Si usa Release Management para Visual Studio 2013, también puede configurarlo para que use HTTPS con SSL, aunque no puede configurarlo para que admita HTTP y HTTPS con SSL.

Antes de elegir una configuración, consulte las ventajas y desventajas que se describen aquí. Después de identificar la configuración que mejor satisfaga las necesidades de seguridad de su organización, siga los pasos de este tema para configurar la implementación.

En este tema

Ventajas de admitir HTTPS con SSL además de HTTP

Si configura la implementación de Azure DevOps Server para admitir ambos protocolos, los usuarios cuyos equipos se hayan configurado para HTTPS con SSL se conectarán mediante ese protocolo, lo que hace que la implementación sea más segura. Además, los usuarios cuyos equipos se configuran para HTTP solo pueden conectarse a la implementación. Aunque no debería implementar esta configuración sobre redes públicas, puede obtener las siguientes ventajas si continúa admitiendo las conexiones HTTP en un entorno de red controlado:

  • Puede aumentar la seguridad de la implementación con el tiempo configurando los equipos cliente para HTTPS con SSL cuando lo permita la programación. Si adopta un enfoque por fases, no necesita actualizar todos los equipos al mismo tiempo y los usuarios cuyos equipos no se hayan actualizado aún pueden conectarse a la implementación.

  • Puede configurar y mantener más fácilmente Azure DevOps Server.

  • Las llamadas de un servicio Web a otro son más rápidas sobre HTTP que sobre HTTPS con SSL. Por consiguiente, puede continuar admitiendo las conexiones HTTP de equipos clientes para los que los requisitos de rendimiento son más importantes que los riesgos para la seguridad.

Ventajas de requerir HTTPS con SSL para todas las conexiones

Si requiere HTTPS con SSL para todas las conexiones, disfrutará de las siguientes ventajas:

  • Todas las conexiones web entre el nivel de aplicación, la capa de datos y el nivel de cliente de Azure DevOps son más seguros porque requieren certificados.

  • Puede controlar el acceso más fácilmente configurando los certificados para que expiren cuando se espera que finalice una fase del proyecto.

Desventajas de admitir o requerir HTTPS con SSL

Antes de configurar Azure DevOps Server para admitir o requerir HTTPS con SSL, debe tener en cuenta las siguientes desventajas:

  • Se pueden complicar las tareas de administración en curso. Por ejemplo, tal vez tenga que reconfigurar la implementación para que no admita HTTPS con SSL para poder aplicar los Service Pack u otras actualizaciones.

  • No solo debe configurar sino también administrar una entidad de certificación (CA) y confianzas de certificados. Puede usar Servicios de certificados en Windows Server 2003 y Windows Server 2008, pero es posible que no quiera invertir el tiempo y los recursos que implementan una infraestructura de clave pública segura (PKI).

  • Debe dedicar un tiempo significativo a instalar y probar una de las configuraciones, y la solución de problemas de la implementación será más difícil.

  • Si sigue admitiendo ambos protocolos, es posible que las conexiones externas no se cifren si el nivel de aplicación de Azure DevOps no está protegido correctamente.

  • Si requiere HTTPS con SSL, el rendimiento de la implementación será más lento.

Configurar la implementación para admitir o requerir HTTPS con SSL

Los procedimientos de este tema describen un proceso para solicitar, emitir y asignar certificados necesarios para las conexiones SSL en Azure DevOps Server. Si utiliza un software diferente del que se describe en este tema, tal vez deba seguir pasos diferentes. Para admitir conexiones externas a la implementación de Azure DevOps Server, también debe habilitar la autenticación básica, la autenticación implícita o ambas en Internet Information Services (IIS).

Siguiendo los procedimientos descritos en este tema, llevará a cabo las siguientes tareas:

  1. Obtenga certificados para la implementación de Azure DevOps Server y los sitios web que usa.

  2. Instalar y asignar los certificados.

  3. Configure Azure DevOps Server.

  4. Configure Team Foundation Build.

  5. Configure Release Management para Visual Studio 2013

  6. Configurar los equipos clientes.

Requisitos previos

Para llevar a cabo los procedimientos de este tema, debe cumplir los requisitos siguientes:

  • Los componentes lógicos de los niveles de datos y de aplicación de Azure DevOps deben instalarse, aunque en el caso de Azure DevOps Server sí mismo, no necesariamente configurados. Estos niveles incluyen IIS, SQL Server y cualquier componente adicional que pueda haber integrado, como Team Foundation Build y SQL Server Reporting Services.

    Los procedimientos de este tema hacen referencia al servidor o a los servidores que ejecutan los componentes lógicos en la aplicación y los niveles de datos de Azure DevOps. Es posible que las capas de aplicación y datos se ejecuten en el mismo servidor o en varios servidores, como se describe en Azure DevOps Server guía de instalación.

  • Debe tener una entidad de certificación desde la que pueda emitir certificados o haberse suscrito a una entidad de certificación de terceros con una cadena de confianza. En este tema se supone que está utilizando Servicios de servidor de certificados como CA, pero puede utilizar cualquier CA que haya configurado, o certificados de una entidad de certificación de terceros de confianza. Si no tiene una entidad de certificación, puede instalar los Servicios de servidor de certificados y configurar una. Para obtener más información, vea uno de los siguientes conjuntos de documentación en el sitio web de Microsoft:

  • Debe ser administrador para configurar todos los componentes de la implementación de HTTPS y SSL. Si trabaja en una implementación distribuida en la que diferentes personas tienen permisos administrativos para componentes individuales, deberá coordinarse con esas personas para completar la configuración.

  • En concreto, debe pertenecer al grupo Administradores de Team Foundation y debe pertenecer al grupo Administradores en el nivel de aplicación, el nivel de datos y el servidor proxy de Azure DevOps o los servidores de Team Foundation.

  • Para configurar un servidor de compilación, debe pertenecer al grupo Administradores de ese servidor.

  • Para configurar Release Management, debe pertenecer al grupo Administradores del servidor que hospeda Release Management Server y ser miembro del rol Administrador de versiones en Release Management.

  • Si la implementación utiliza informes, debe ser miembro de un grupo de seguridad administrativo o tener permisos equivalentes establecidos individualmente para los servicios de configuración de informes.

    Para obtener más información sobre los permisos, consulte Referencia de permisos para Azure DevOps Server.

Supuestos

En los procedimientos de este tema se supone que lo siguiente es cierto:

  • El servidor o los servidores de la capa de datos y de la capa de aplicación se han instalado e implementado en un entorno seguro y configurado según los procedimientos de seguridad recomendados.

  • Sabe cómo configurar y administrar PKI, así como solicitar, emitir y asignar certificados.

  • Tiene conocimientos prácticos sobre la topología de red del entorno de desarrollo y está familiarizado con la configuración de red, IIS y SQL Server.

Obtener un certificado

Antes de configurar Azure DevOps Server para usar HTTPS con SSL, debe obtener e instalar un certificado de servidor para los servidores de la implementación. Para obtener un certificado de servidor, debe instalar y configurar su propia entidad de certificación o utilizar una entidad de certificación de una organización externa de confianza (certificados de terceros).

Para obtener más información sobre cómo instalar una entidad de certificación, consulte los siguientes temas en el sitio web de Microsoft:

Solicitar, instalar y configurar sitios web con un certificado

Después de darse de alta en una entidad de certificación, debe solicitar un certificado utilizando el Administrador de IIS o instalar manualmente el certificado en cada uno de los siguientes servidores de la implementación:

  • Los servidores de la capa de aplicación.
  • Cada servidor que ejecuta el servidor proxy de Azure DevOps, si hay alguno configurado para la implementación.
  • Cada servidor que ejecuta Team Foundation Build Service como un controlador de compilación o un agente de compilación, si hay alguno configurado para la implementación.
  • El servidor que está ejecutando Server Reporting Services, si tiene uno configurado para la implementación.

Además, los equipos cliente de la implementación deberán estar inscritos en la cadena de certificados y solicitar el certificado necesario. Si usa Release Management, es así para todos los equipos que ejecuten el cliente de Release Management, además de los clientes¹ que ejecuten el agente de implementación en sus entornos de versiones. Si uno o varios de sus proyectos utilizan Git para el control de versiones, los usuarios de esos proyectos también deberán configurar Git en sus equipos para reconocer y usar el certificado cliente. Para obtener información sobre cómo solicitar un certificado cliente desde una entidad de certificación determinada, consulte la documentación de esa entidad de certificación.

¹ Aquí se mencionan los clientes y servidores por separado, pero es únicamente una convención de este documento. Todo equipo que ejecute el agente de implementación debe tener instalado el certificado.

  1. Abra el Administrador de Internet Information Services (IIS) .

  2. Expanda el servidor, vaya a Certificados de servidor y cree y complete la solicitud de certificado.

    Abra el Administrador de IIS y solicite un certificado

    Cree una solicitud y complétela

    Para obtener más información, consulte Configuración de certificados de servidor en IIS.

  3. Importe el certificado.

  4. A continuación, debe configurar cada sitio web que vaya a exigir este certificado con las opciones adecuadas, con excepción del sitio web de Release Management, que configurará más adelante. En concreto, deberá hacerlo para cada uno de los sitios web siguientes:

    • Sitio web predeterminado
    • Azure DevOps Server
    • Azure DevOps Server proxy (si la implementación la usa)

    En cada servidor que hospeda un sitio web que desea configurar, abra el Administrador de Internet Information Services (IIS).

  5. Expanda NombreDeEquipo, Expanda Sitios, abra el submenú del sitio web que desea configurar (por ejemplo, Azure DevOps Server) y, a continuación, elija Enlaces en el panel Acciones.

    Debe configurar enlaces para todos los sitios

  6. En Enlaces de sitio, elija Agregar.

    Aparecerá el cuadro de diálogo Agregar enlace de sitio .

  7. En la lista Tipo , elija https.

    En Puerto, escriba un número de puerto diferente.

    Importante

    El número de puerto predeterminado para las conexiones SSL es 443, pero debe asignar un número de puerto único para cada uno de los siguientes sitios: Sitio web predeterminado, Azure DevOps Server y proxy de Azure DevOps Server (si la implementación la usa). Debe tomar nota del número de puerto SSL de cada sitio web que configure. Deberá especificar estos números en la consola de administración de Azure DevOps.

    En Certificado SSL, elija el certificado que importó y, a continuación, elija Aceptar y cierre la página Enlaces.

    Asegúrese de elegir un número de puerto único

  8. En la página Inicio del sitio web que está configurando, abra la vista Características .

  9. En IIS, elija Autenticación.

  10. Elija el método de autenticación que desee configurar, abra su submenú y, a continuación, habilite, deshabilite o realice alguna configuración adicional en el método, de acuerdo con sus requisitos de seguridad. Por ejemplo, si deseara deshabilitar la autenticación anónima, elegiría el método de autenticación anónima y elegiría Deshabilitar en el menú Acciones.

    Elegir el método y después la acción que se realizará

  11. Una vez que termine la configuración, reinicie los servicios web.

Configurar el firewall

Debe configurar el firewall para que permita el tráfico a través de los puertos SSL que especificó en IIS. Para obtener más información, vea la documentación del firewall.

Importante

Asegúrese de comprobar el tráfico en los puertos que ha especificado desde otro equipo. Si no puede acceder al sitio web o portal web predeterminado, compruebe la configuración de puerto que especificó para estos sitios web en IIS y asegúrese de que el firewall está configurado correctamente para permitir el tráfico en esos puertos.

Configurar SQL Server Reporting Services

Si la implementación usa informes, debe configurar SQL Server Reporting Services para admitir HTTPS con SSL y usar el puerto que especificó en IIS para Azure DevOps Server. De lo contrario, el servidor de informes no funcionará correctamente para la implementación. Para obtener más información, consulte Configuración de un servidor de informes para la capa de sockets seguros (SSL) Connections.

Sugerencia

Puede omitir este procedimiento si su implementación no usa informes de errores.

Configuración de HTTPS para Azure DevOps Server

Siga estos pasos para configurar la implementación de Azure DevOps Server con los puertos HTTPS y los valores que configuró en IIS para los sitios web predeterminados y Azure DevOps Server.

Para volver a configurar Azure DevOps Server para usar o requerir HTTPS

  1. Abra la consola de administración de Azure DevOps y vaya al nodo de nivel de aplicación.

  2. En Resumen del nivel de aplicación, elija Cambiar direcciones URL.

    Se abre la ventana Cambiar direcciones URL .

  3. En Dirección URL de notificación, escriba la dirección URL HTTPS que configuró para el sitio web de Azure DevOps Server en IIS.

    Por ejemplo, tal vez haya configurado el sitio web para el puerto 444. En este caso, escriba https:// ServerName:444/tfs. Asegúrese de que utiliza el nombre de dominio completo del servidor en lugar del host local.

    Especificar HTTPS, el servidor y el puerto en la dirección

  4. Elija Probar. No elija Aceptar si la prueba no se supera. Vuelva atrás y compruebe que escribió la dirección URL y la información de puerto correctas, que todos los firewalls están configurados para permitir el tráfico en esos puertos y que el sitio está disponible y en ejecución en el Administrador de IIS.

  5. Para requerir HTTPS, elija Usar en dirección URL del servidor y, a continuación, escriba la dirección URL HTTPS que configuró para el sitio web de Azure DevOps Server.

    Asegúrese de que utiliza el nombre de dominio completo del servidor en lugar del host local.

  6. Elija Probar y, a continuación, elija Aceptar si se supera la prueba.

  7. Si la implementación usa Reporting Services, en la consola de administración, elija Informes. En caso contrario, omita el resto del procedimiento.

  8. En Informes, elija Editar.

    Si se abre el cuadro de diálogo Desconectar , elija Aceptar.

    Se abre la ventana Informes .

  9. Elija la pestaña Informes . En Direcciones URL del servidor de informes, escriba las direcciones URL HTTPS para el servicio web y el Administrador de informes y, a continuación, elija Aceptar.

Prueba del acceso a la implementación

Debe probar si los cambios funcionan según lo previsto. Este paso es opcional pero es muy recomendable que lo ejecute.

Para probar el acceso a la implementación

  1. En un equipo que no hospede la capa de aplicación, abra un explorador web y acceda a una página principal del equipo.

  2. Compruebe si puede acceder a los equipos y proyectos desde el portal web, incluidas las páginas de administración.

  3. Si no puede acceder a la implementación a través del portal web, revise los pasos que acaba de completar y asegúrese de que ha realizado todos los cambios de configuración correctamente.

Configuración de la implementación para requerir HTTPS con SSL (opcional)

Puede requerir todas las conexiones al nivel de aplicación Azure DevOps Server para usar HTTPS con SSL. Esta seguridad adicional es opcional pero recomendada.

Para exigir conexiones SSL

  1. En el servidor que hospeda el sitio web que desea configurar, elija Inicio, Herramientas administrativas y, después, Administrador de Internet Information Services (IIS).

  2. Siga los pasos adecuados para su versión de IIS:

    Para las implementaciones que utilizan IIS 7.0:

    1. Expanda NombreDeEquipo, Expanda Sitios web y, a continuación, elija el sitio web que desea configurar.

    2. En la página principal de ese sitio web, elija Configuración de SSL.

    3. En el panel Configuración de SSL , active la casilla Requerir SSL .

      (Opcional) Active la casilla Requerir SSL de 128 bits .

    4. En Certificados de cliente, elija Omitir, Aceptar o Requerir, en función de los requisitos de seguridad de la implementación.

    5. En Acciones, elija Aplicar.

    6. Repita estos pasos para cada sitio web para el que desee requerir SSL.

Instalar el certificado en servidores de compilación

Si instaló Team Foundation Build Service en uno o varios servidores, debe instalar el certificado en el almacén Entidades de certificación raíz de confianza de cada servidor. Para obtener más información, vea Obtener un certificado y solicitar, instalar y configurar sitios web con un certificado anteriormente en este tema. El controlador y el agente requieren un certificado con una clave privada con la que identificarse en las conexiones HTTPS.

Nota

Para realizar las compilaciones sobre SSL, el certificado se debe instalar en el almacén raíz de plena confianza en el controlador de compilación y el agente de compilación.

Actualizar las configuraciones de compilación

Para configurar Team Foundation Build para conexiones SSL, debe configurar el servicio de compilación para usar la dirección URL HTTPS que configuró para el nivel de aplicación y la colección que admite la configuración de compilación. Debe configurar esta dirección URL para cada configuración de compilación de la implementación.

Para cambiar una configuración de compilación para utilizar HTTPS

  1. En el servidor que hospeda la configuración de compilación que desea configurar, abra la consola de administración de Team Foundation.

  2. En Team Foundation, expanda el nombre del servidor y, a continuación, elija Compilar configuración.

    Aparece el panel Configuración de compilación .

  3. En la configuración del servicio, elija Detener y, a continuación, elija Propiedades.

    Se abre el cuadro de diálogo Propiedades del servicio de compilación.

  4. En Comunicaciones, asegúrese de que la dirección URL de la colección de proyectos usa la dirección HTTPS correcta y el nombre completo del servidor.

  5. En Punto de conexión de servicio de compilación local (entrante), elija Cambiar.

    Se abre el cuadro de diálogo Build Service Endpoint (Punto de conexión de servicio de compilación).

  6. En Detalles del punto de conexión, compruebe que el número de puerto coincide con los detalles de configuración.

  7. En Protocolo, elija HTTPS.

  8. En la lista Certificados SSL , elija el certificado que instaló y configuró para su uso con esta implementación y, a continuación, elija Aceptar.

    Asegurar que los detalles de configuración coinciden

  9. En el cuadro de diálogo Propiedades del servicio de compilación , elija Iniciar.

Configurar los equipos clientes

En todos los equipos cliente desde los que los usuarios acceden a Azure DevOps, debe instalar el certificado localmente y borrar la memoria caché de cliente para cualquier usuario que haya accedido a Azure DevOps desde ese equipo. De lo contrario, los usuarios no podrán conectarse a Azure DevOps desde ese equipo. Para obtener más información, vea Administrar certificados raíz de confianza.

Importante

No siga este procedimiento para los equipos que ejecutan Azure DevOps Server y uno o varios clientes de Azure DevOps.

Para instalar el certificado en un equipo cliente

  1. Inicie sesión en el equipo con una cuenta que pertenezca al grupo Administradores de ese equipo.

  2. Instale el certificado en la carpeta Entidades emisoras de certificados raíz de confianza del equipo local.

Para borrar la memoria caché de los equipos cliente

  1. Inicie sesión en el equipo con las credenciales del usuario cuya memoria caché desea borrar.

  2. Cierre todas las instancias abiertas de Visual Studio.

  3. En una ventana del explorador, abra la siguiente carpeta:

    Unidad:\Usuarios\NombreDeUsuario\AppData\Local\Microsoft\Team Foundation\4.0\Cache

  4. Elimine el contenido del directorio Caché. Asegúrese de eliminar todas las subcarpetas.

  5. Elija Inicio, elija Ejecutar, escriba devenv /resetuserdata y, a continuación, elija Aceptar.

  6. Repita estos pasos para la cuenta de cada usuario que haya accedido a Team Foundation desde ese equipo.

    Nota

    Es posible que quiera distribuir instrucciones para borrar la memoria caché en todos los usuarios de Azure DevOps para que puedan borrar las memorias caché por sí mismas.

Para conectar los equipos cliente a la implementación reconfigurada

Configurar Git

De forma predeterminada, los proyectos que usan Git para el control de versiones no podrán validar el certificado SSL que ha configurado para Azure DevOps Server. Esto se debe a que, a diferencia de Azure DevOps Server y Visual Studio, Git no reconoce el almacén de certificados de Windows. En su lugar, utiliza OpenSSL para el almacén de certificados. Para utilizar un repositorio de Git para proyectos configurados con SSL, deberá configurar Git con el certificado en la raíz de la cadena de certificados de la implementación de TFS 2013. Esta es una tarea de configuración del cliente que solo se aplica a los proyectos de repositorio de Git.

Para obtener más información sobre cómo funcionan las operaciones de red de Git en Visual Studio 2013, consulte esta entrada de blog.

Sugerencia

Para otras tareas de administración de credenciales de Git, como autenticación de Windows, considere la posibilidad de descargar e instalar el Almacén de credenciales de Windows para Git.

Para configurar el almacén de certificados para Git

  • Inicie sesión en el equipo con una cuenta que pertenezca al grupo Administradores de ese equipo.

  • Asegúrese de que el certificado necesario se ha instalado y configurado en el equipo, como se indicó anteriormente.

  • En el explorador web compatible, extraiga el Azure DevOps Server certificado raíz como un archivo X.509 CER/PEM codificado en base64.

  • Cree una copia privada del almacén de certificados raíz de Git y agréguela a la copia privada del usuario del almacén.