Compartir a través de


Requisitos de certificado para SQL Server

En este artículo se describen los requisitos de certificado para SQL Server y cómo comprobar si un certificado cumple estos requisitos.

Requisitos de certificado para el cifrado de SQL Server

Para usar la seguridad de la capa de transporte (TLS) para el cifrado de SQL Server, debe aprovisionar un certificado (uno de los tres tipos digitales) que cumpla las condiciones siguientes:

  • El certificado debe estar en el almacén de certificados del equipo local o en el almacén de certificados de la cuenta de servicio de SQL Server. Se recomienda el almacén de certificados del equipo local, ya que evita volver a configurar los certificados con cambios en la cuenta de inicio de SQL Server.

  • La cuenta de servicio de SQL Server debe tener el permiso necesario para acceder al certificado TLS. Para obtener más información, vea Configurar el motor de base de datos de SQL Server para cifrar conexiones.

  • La hora actual del sistema debe ser posterior al valor de la propiedad Valid from y anterior al valor de la propiedad Valid to del certificado. Para obtener más información, vea Certificados expirados.

    Nota:

    El certificado debe estar destinado a la autenticación del servidor. Esto requiere la propiedad Uso mejorado de clave del certificado para especificar la autenticación del servidor (1.3.6.1.5.5.7.3.1).

  • El certificado debe crearse con la KeySpec opción de AT_KEYEXCHANGE. Esto requiere un certificado que use un proveedor de almacenamiento criptográfico heredado para almacenar la clave privada. Normalmente, la propiedad de uso de claves del certificado (KEY_USAGE) también incluye el cifrado de claves (CERT_KEY_ENCIPHERMENT_KEY_USAGE) y una firma digital (CERT_DIGITAL_SIGNATURE_KEY_USAGE).

  • La propiedad Subject del certificado debe indicar que el nombre común (CN) es el mismo que el nombre de host o el nombre de dominio completo (FQDN) del equipo servidor. Cuando se usa el nombre de host, el sufijo DNS debe especificarse en el certificado. Si SQL Server se ejecuta en un clúster de conmutación por error, el nombre común debe coincidir con el nombre de host o el FQDN del servidor virtual y los certificados deben aprovisionarse en todos los nodos del clúster de conmutación por error. Por ejemplo, si tiene un clúster de dos nodos, con nodos denominados test1.*<your company>*.com y test2.*<your company>*.com, y tiene un servidor virtual denominado virtsql, debe instalar un certificado para virtsql.*<your company>*.com en ambos nodos. Para obtener más información sobre los clústeres de SQL, consulte Antes de instalar los clústeres de conmutación por error.

  • Al conectarse a un agente de escucha de grupo de disponibilidad, los certificados que se aprovisionan para cada nodo de servidor participante del clúster de conmutación por error también deben tener una lista de todos los agentes de escucha de grupo de disponibilidad establecidos en el nombre alternativo del firmante del certificado. Para más información, consulte Agentes de escucha y certificados TLS/SSL. Para obtener más información sobre SQL Always On, consulte Conectar con un oyente de grupo de disponibilidad Always On.

  • El nombre alternativo del firmante debe incluir todos los nombres que los clientes pueden usar para conectarse a una instancia de SQL Server. Si usa Grupos de disponibilidad, el Nombre alternativo del sujeto debe incluir NetBIOS y el Nombre de dominio completo (FQDN) del nombre de host local y los escuchas creados.

El cliente debe poder comprobar la propiedad del certificado utilizado por el servidor. Si el cliente tiene el certificado de clave pública de la entidad de certificación que firmó el certificado de servidor, no es necesario realizar ninguna otra configuración. Microsoft Windows incluye los certificados de clave pública de muchas entidades de certificación. Si el certificado de servidor fue firmado por una entidad de certificación pública o privada para la que el cliente no tiene el certificado de clave pública, debe instalar el certificado de clave pública de la entidad de certificación que firmó el certificado de servidor en cada cliente que se va a conectar a SQL Server.

Importante

SQL Server no se iniciará si existe un certificado en el almacén de equipos, pero solo cumple algunos requisitos de la lista anterior y si está configurado manualmente para su uso por el Administrador de configuración de SQL Server o a través de entradas del Registro. Seleccione otro certificado que cumpla todos los requisitos o quite el certificado que SQL Server va a usar hasta que pueda aprovisionar uno que cumpla los requisitos o use un certificado autogenerado como se describe en Certificados autofirmados generados por SQL Server.

Comprobación de si un certificado cumple los requisitos

En SQL Server 2019 (15.x) y versiones posteriores, el Administrador de configuración de SQL Server valida automáticamente todos los requisitos de certificado durante la propia fase de configuración. Si SQL Server se inicia correctamente después de configurar un certificado, es una buena indicación de que SQL Server puede usar ese certificado. Sin embargo, es posible que algunas aplicaciones cliente sigan teniendo otros requisitos para los certificados que se pueden usar para el cifrado y podría experimentar errores diferentes en función de la aplicación que se use. En ese escenario, debe comprobar la documentación de soporte técnico de la aplicación cliente para obtener más información sobre el asunto.

Puede usar uno de los métodos siguientes para comprobar la validez del certificado para su uso con SQL Server:

  • herramienta sqlcheck: sqlcheck es una herramienta de línea de comandos que examina la configuración actual de la cuenta de equipo y servicio y genera un informe de texto en la ventana consola que resulta útil para solucionar varios errores de conexión. La salida proporciona la siguiente información sobre los certificados:

    Details for SQL Server Instance: This Certificate row in this section provides more details regarding the certificate being used by SQL Server (Self-generated, hard-coded thumbprint value, etc.).
    
    Certificates in the Local Computer MY Store: This section shows detailed information regarding all the certificates found in the computer certificate store.
    

    Para obtener más información sobre las funcionalidades de la herramienta y para obtener instrucciones de descarga, consulte Bienvenido a la wiki de CSS_SQL_Networking_Tools.

  • certutil tool: certutil.exe es un programa de línea de comandos, instalado como parte de Servicios de certificados. Puede usar certutil.exe para volcar y mostrar información del certificado. Use la -v opción para obtener información detallada. Para obtener más información, consulte: certutil.

  • Complemento Certificados: también puede usar la ventana Complemento Certificados para ver más información sobre los certificados en varios almacenes de certificados del equipo. Pero esta herramienta no muestra información de tipo KeySpec. Para obtener más información sobre cómo ver certificados con el complemento MMC, vea How to: View certificates with the MMC snap-in.

Más información

Certificados expirados

SQL Server solo comprueba la validez de los certificados en el momento de la configuración. Por ejemplo, no puede usar Configuration Manager en SQL Server 2019 (15.x) y versiones posteriores para aprovisionar un certificado expirado. SQL Server continúa ejecutándose sin problemas si el certificado expira después de que ya esté aprovisionado. Pero algunas aplicaciones cliente como Power BI comprueban la validez del certificado en cada conexión y generan un error si la instancia de SQL Server está configurada para usar un certificado expirado para el cifrado. Se recomienda no usar un certificado expirado para el cifrado de SQL Server.