Estoy tratando de entender cómo las diferentes configuraciones afectan el comportamiento de mi comunicación servidor-cliente. En el servidor he instalado una CA autofirmada con un certificado de intercambio emitido que también ha sido configurado para ser utilizado por mi servicio SQL.
Al principio me gustaría ver que esta conexión falla cuando la CA raíz no se ha instalado en el cliente. Pero lo que sea que haga parece funcionar de todos modos.
Para comprender mejor por qué, estoy tratando de enumerar todas las opciones y qué efecto deberían producir. Pero no estoy seguro de haberlo entendido bien ...
¿Alguien puede ayudarme a corregir y completar las piezas que faltan aquí?
Al habilitar la configuración " Forzar cifrado " en el servidor SQL:
- En la práctica, esto es lo mismo que establecer
Encrypt=True;TrustServerCertificate=True;
en mi cadena de conexión. El cliente no tiene voz sobre si se debe usar o no el cifrado y si se debe confiar o no en el servidor. - Esta opción se puede usar para cifrar instancias de servicio individuales.
- Admite certificados de intercambio autofirmados sin CA.
Al habilitar la configuración " Forzar cifrado de protocolo " en el servidor SQL:
- Todas las conexiones de clientes a todos los servicios en el servidor están encriptadas.
- Requiere un certificado de intercambio emitido por una CA confiable disponible tanto en el cliente como en el servidor.
Cuando utilice la configuración " Forzar cifrado de protocolo " en el Cliente:
- Este único cliente forzará el uso de SSL y requiere un certificado de intercambio emitido por una CA confiable disponible en esta máquina. Sin ella, esta conexión fallará.
Al habilitar la configuración " Forzar cifrado de protocolo " tanto en el servidor como en el cliente:
- Esto no es recomendable. ¿Pero por qué? ¿Qué pasa y qué fallará?
Al habilitar " Forzar cifrado " y " Forzar cifrado de protocolo " en el servidor:
- ¿Qué rendirá esto? ¿Importa en qué Force Encryption está configurado cuando Force Protocol Encryption está habilitado?
fuente