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 configurándolo para usar Hypertext Transfer Protocol Secure (HTTPS) con capa de sockets seguros (SSL). Puede optar por requerir este protocolo, lo que maximiza la seguridad de la implementación, o puede optar por 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 admitir HTTP y HTTPS con SSL.
Antes de elegir una configuración, revise las ventajas y desventajas que se describen aquí. Después de identificar la configuración que mejor se adapte a las necesidades de seguridad de su organización, siga los pasos descritos en este tema para configurar la implementación.
En este tema
Información conceptual
Configuración del servidor
Tareas de configuración opcionales
Configuración de compilación
Configuración de cliente
Configuración del repositorio de Git
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 han 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 están configurados para HTTP solo pueden conectarse a la implementación. Aunque no debe implementar esta configuración a través de redes públicas, puede obtener las siguientes ventajas si continúa admitiendo conexiones HTTP en un entorno de red controlado:
Puede aumentar la seguridad de la implementación a lo largo del tiempo configurando equipos cliente para HTTPS con SSL, ya que la programación permite. Si adopta un enfoque por fases, no es necesario actualizar todos los equipos al mismo tiempo y los usuarios cuyos equipos aún no se han actualizado pueden conectarse a la implementación.
Puede configurar y mantener Azure DevOps Server con más facilidad.
Las llamadas de un servicio web a otro son más rápidas a través de HTTP que a través de HTTPS con SSL. Por lo tanto, puede seguir admitiendo conexiones HTTP desde equipos cliente para los que los requisitos de rendimiento superan los riesgos de seguridad.
Ventajas de requerir HTTPS con SSL para todas las conexiones
Si necesita HTTPS con SSL para todas las conexiones, obtendrá las siguientes ventajas:
Todas las conexiones web entre el nivel de aplicación, el nivel 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 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:
Es posible que complique las tareas de administración en curso. Por ejemplo, es posible que tenga que volver a configurar la implementación para dejar de admitir HTTPS con SSL antes de poder aplicar Service Packs 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 mucho tiempo a configurar y probar cualquiera de estas 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 necesita HTTPS con SSL, el rendimiento de la implementación será más lento.
Configuración de 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 usa software diferente al que describe este tema, es posible que tenga que realizar distintos pasos. 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 de este tema, realizará las siguientes tareas:
Obtenga certificados para la implementación de Azure DevOps Server y los sitios web que usa.
Instale y asigne los certificados.
Configure Azure DevOps Server.
Configure Team Foundation Build.
Configuración de Release Management para Visual Studio 2013
Configure los equipos clientes.
Requisitos previos
Para realizar los procedimientos de este tema, primero debe cumplir los siguientes requisitos:
Los componentes lógicos de los niveles de datos y aplicación de Azure DevOps deben instalarse, aunque en el caso de Azure DevOps Server en sí mismo, no necesariamente configurado. 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 los servidores que ejecutan los componentes lógicos de la aplicación y los niveles de datos de Azure DevOps. Es posible que la aplicación y los niveles de datos se ejecuten en el mismo servidor o en varios servidores, como se describe en la guía de instalación de Azure DevOps Server.
Debe tener una entidad de certificación (CA) desde la que pueda emitir certificados o suscribirse a una entidad de certificación de terceros con una cadena de confianza. En este tema se supone que usa Servicios de certificados como entidad de certificación, pero puede usar cualquier ENTIDAD de certificación que haya configurado para la implementación o certificados de una entidad de certificación de terceros de confianza. Si no tiene una entidad de certificación, puede instalar Servicios de certificados y configurar uno. Para obtener más información, consulte uno de los siguientes conjuntos de documentación en el sitio web de Microsoft:
- Para Windows Server 2012: Servicios de certificados de Active Directory
Debe ser administrador para configurar todos los componentes de la implementación para 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 para 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 Administración de versiones.
Si la implementación usa informes, debe ser miembro de un grupo de seguridad administrativo o tener permisos equivalentes establecidos individualmente para configurar reporting services.
Para 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 se cumplen las condiciones siguientes:
Los servidores o servidores de capa de datos y de capa de aplicación se han instalado e implementado en un entorno seguro y configurado según los procedimientos recomendados de seguridad.
Está familiarizado con cómo configurar y administrar PKIs y 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 la red, IIS y SQL Server.
Obtención de un certificado
Antes de configurar Azure DevOps Server para que use 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 bien debe usar una entidad de certificación de una organización externa en la que confíe (certificados de terceros).
Para obtener más información sobre cómo instalar una entidad de certificación, consulte los temas siguientes en el sitio web de Microsoft:
Para Windows Server 2012: Implementación de una jerarquía PKI de dos niveles de AD CS
Para Windows Server 2008: Servicios de certificados de Active Directory y administración de claves públicas
Solicitud, instalación y configuración de sitios web con un certificado
Después de inscribirse en una entidad de certificación, debe solicitar un certificado mediante el Administrador de IIS o instalar manualmente el certificado en cada uno de los siguientes servidores de la implementación:
- Cada servidor de nivel 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.
- Servidor que ejecuta Reporting Services, si está configurado para la implementación.
Además, los equipos cliente de la implementación deberán inscribirse en la cadena de certificados y solicitar el certificado necesario. Si usa Release Management, esto incluye los equipos que ejecutan el cliente release Management, así como los clientes que ejecutan el agente de implementación en los entornos de versión. Si uno o varios de los proyectos usan Git para el control de versiones, los usuarios de esos proyectos también tendrán que configurar Git en sus equipos para reconocer y usar el certificado de cliente. Para obtener información sobre cómo solicitar un certificado de cliente desde una entidad de certificación específica, consulte la documentación de esa entidad de certificación.
¹ Los clientes y servidores se llaman por separado aquí, pero eso es simplemente una convención de este documento. Cualquier equipo que ejecute el agente de implementación necesita el certificado instalado.
Abra el Administrador de Internet Information Services (IIS) .
Expanda el servidor, vaya a Certificados de servidor y cree y complete la solicitud de certificado.
Para obtener más información, consulte Configuración de certificados de servidor en IIS.
Importe el certificado.
Ahora debe configurar cada sitio web que requerirá este certificado con la configuración adecuada (con la 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
- Proxy de Azure DevOps Server (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).
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.
En Enlaces de sitio, elija Agregar.
Aparecerá el cuadro de diálogo Agregar enlace de sitio .
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 Azure DevOps Server Proxy (si la implementación lo usa). Debe registrar el número de puerto SSL para 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.
En la página Principal del sitio web que está configurando, abra la vista Características .
En IIS, elija Autenticación.
Elija un método de autenticación que quiera configurar, abra su submenú y, a continuación, habilite, deshabilite o realice una configuración adicional en el método, ya que mejor se adapte a sus necesidades de seguridad. Por ejemplo, si desea deshabilitar la autenticación anónima, elegiría el método autenticación anónima y el elija Deshabilitar en el menú Acciones.
Una vez finalizada la configuración, reinicie los servicios web.
Configuración del firewall
Debe configurar el firewall para permitir el tráfico a través de los puertos SSL que acaba de especificar en IIS. Para más información, consulte la documentación del firewall.
Importante
Asegúrese de probar el tráfico en los puertos especificados 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.
Configuración de 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 especificado 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 conexiones de capa de sockets seguros (SSL).
Sugerencia
Si la implementación no usa informes, puede omitir este procedimiento.
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 de Azure DevOps Server.
Para volver a configurar Azure DevOps Server para usar o requerir HTTPS
Abra la consola de administración de Azure DevOps y vaya al nodo de nivel de aplicación.
En Resumen del nivel de aplicación, elija Cambiar direcciones URL.
Se abre la ventana Cambiar direcciones URL .
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, es posible que haya configurado el sitio web para usar el puerto 444. En este caso, escriba https:// ServerName:444/tfs. Asegúrese de usar el nombre de dominio completo del servidor en lugar de localhost.
Elija Probar. No elija Aceptar si la prueba no se supera. Vuelva y asegúrese de que ha escrito 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 ejecutándose en el Administrador de IIS.
Para requerir HTTPS, elija Usar en dirección URL del servidor y escriba la dirección URL HTTPS que configuró para el sitio web de Azure DevOps Server.
Asegúrese de usar el nombre de dominio completo del servidor en lugar de localhost.
Elija Probar y, a continuación, elija Aceptar si se supera la prueba.
Si la implementación usa Reporting Services, en la consola de administración, elija Informes. De lo contrario, omita el resto de este procedimiento.
En Informes, elija Editar.
Si se abre el cuadro de diálogo Desconectar , elija Aceptar.
Se abre la ventana Informes .
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 se recomienda encarecidamente.
Para probar el acceso a la implementación
En un equipo que no hospeda el nivel de aplicación, abra un explorador web y vaya a una página principal del equipo.
Compruebe si puede acceder a los equipos y proyectos desde el portal web, incluidas las páginas de administración.
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 de Azure DevOps Server para usar HTTPS con SSL. Esta seguridad adicional es opcional, pero se recomienda.
Para requerir conexiones SSL
En el servidor que hospeda el sitio web que desea configurar, elija Inicio, Herramientas administrativas y, a continuación, elija Administrador de Internet Information Services (IIS).
Siga los pasos adecuados para la versión de IIS:
Para implementaciones que usan IIS 7.0:
Expanda NombreDeEquipo, Expanda Sitios web y, a continuación, elija el sitio web que desea configurar.
En la página principal de ese sitio web, elija Configuración de SSL.
En el panel Configuración de SSL, active la casilla Requerir SSL .
(Opcional) Active la casilla Requerir SSL de 128 bits.
En Certificados de cliente, elija Omitir, Aceptar o Requerir, en función de los requisitos de seguridad de la implementación.
En Acciones, elija Aplicar.
Repita estos pasos para cada sitio web para el que quiera requerir SSL.
Instalación del 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 de 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. Tanto el controlador como el agente requieren un certificado con una clave privada con la que identificarse en conexiones HTTPS.
Nota:
Para realizar compilaciones a través de SSL, el certificado debe instalarse en el almacén raíz de confianza tanto en el controlador de compilación como en el agente de compilación.
Actualización de 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 usar HTTPS
En el servidor que hospeda la configuración de compilación que desea configurar, abra la consola de administración de Team Foundation.
En Team Foundation, expanda el nombre del servidor y, a continuación, elija Compilar configuración.
Aparece el panel Configuración de compilación.
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.
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.
En Punto de conexión de servicio de compilación local (entrante), elija Cambiar.
Se abre el cuadro de diálogo Compilar punto de conexión de servicio.
En Detalles del punto de conexión, compruebe que el número de puerto coincide con los detalles de configuración.
En Protocolo, elija HTTPS.
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.
En el cuadro de diálogo Propiedades del servicio de compilación, elija Iniciar.
Configuración de equipos cliente
En todos los equipos cliente desde los que los usuarios acceden a Azure DevOps, debe instalar el certificado localmente y borrar la memoria caché del 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
Inicie sesión en el equipo mediante una cuenta que pertenezca al grupo Administradores de ese equipo.
Instale el certificado en la carpeta Entidades de certificación raíz de confianza para el equipo local.
Para borrar la memoria caché en un equipo cliente
Inicie sesión en el equipo con las credenciales del usuario cuya memoria caché desea borrar.
Cierre todas las instancias abiertas de Visual Studio.
En una ventana del explorador, abra la carpeta siguiente:
Unidad :\Users\ UserName \AppData\Local\Microsoft\Team Foundation\4.0\Cache
Elimine el contenido del directorio Caché. Asegúrese de eliminar todas las subcarpetas.
Elija Inicio, elija Ejecutar, escriba devenv /resetuserdata y, a continuación, elija Aceptar.
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 equipos cliente a la implementación reconfigurada
En Visual Studio, conéctese a Azure DevOps Server mediante la nueva dirección URL HTTPS.
Para más información, consulte Conexión a proyectos en Azure DevOps Server.
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, usa OpenSSL para su almacén de certificados. Para usar un repositorio de Git para proyectos configurados con SSL, deberá configurar Git con el certificado en la raíz de la cadena de certificación para la implementación de TFS 2013. Se trata de una tarea de configuración de 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 mediante 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, según lo anterior.
En el explorador web compatible, extraiga el certificado raíz de Azure DevOps Server 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 del usuario privado del almacén.