[nueva respuesta basada en una mejor comprensión de la pregunta basada en los comentarios del OP a la primera respuesta, ahora eliminada]
¿Hay alguna manera para que mi sitio web le diga que un navegador no permita una
Sustituya el certificado MITM como los que utiliza el proxy corporativo.
servidores?
Existen, aunque son soluciones diseñadas para prevenir el daño causado por certificados que fueron emitidos incorrectamente a terceros maliciosos por una CA. Dos de estas soluciones son HPKP y DANE. Sin embargo, estas soluciones están disminuyendo a medida que entran en juego otras soluciones diferentes (que no ayudan a su caso de uso).
Fijación de clave pública HTTP (HPKP) implica que el servidor comunique qué certificados son válidos para el navegador dentro de los encabezados HTTP. Sin embargo, ha quedado en desuso "debido a su complejidad y sus peligrosos efectos secundarios". Pero vale la pena señalarlo especialmente porque, pertinente a su pregunta,
La mayoría de los navegadores deshabilitan el anclaje para cadenas de certificados con raíz privada
Certificados para permitir la inspección de varios contenidos corporativos
escáneres y herramientas de depuración web (como mitmproxy o Fiddler).
El estándar RFC 7469 recomienda deshabilitar los informes de violación de anclaje
para certificados raíz "definidos por el usuario", donde es "aceptable" para el
navegador para desactivar la validación de pin.
En otras palabras, también hay ganchos para permitir MITM corporativo en HPKP.
Autenticación basada en DNS de entidades nombradas (DANE) hace algo similar, colocando información sobre certificados aceptables en DNS entradas. Sin embargo, no parece tener un soporte de navegador muy bueno, y si los amos corporativos imponen MITM al proxy, también son capaces de bloquear las consultas DNS necesarias.
Las nuevas soluciones al problema de los certificados "falsos" se han alejado del navegador y, por lo tanto, no son útiles para sus propósitos. Autorización de la Autoridad de Certificación de DNS (CAA) permite a los administradores del servidor publicar un registro DNS que identifique la CA correcta que utilizan; sin embargo, esto lo utilizan otras CA como una verificación para evitar solicitudes maliciosas de certificados de alguien que no sea el propietario del dominio. Los navegadores no utilizan este registro para verificar nada.
Del mismo modo, Transparencia del certificado (CT) requiere que las CA publiquen los certificados que hayan emitido, permitiendo que los sujetos y terceros Para buscar certificados maliciosos. Sin embargo, esto tampoco es algo que usen los navegadores.
Teóricamente , si desea ser creativo y hacer rodar los suyos, puede usar Implementación de Forge JavaScript TLS para abrir una sesión TLS desde el navegador del usuario a su servidor con el fin de inspeccionar el certificado. Si el certificado no es tuyo, ¡MITM está en marcha! Luego, puede realizar acciones en el lado del cliente (por ejemplo, mostrar una advertencia) o en el lado del servidor (por ejemplo, abortar el inicio de sesión o, si ya ha iniciado sesión, cerrar la sesión del usuario). Puede ser difícil discernir el proxy para el que está configurado el navegador, aunque ...