c# - revocacion - quitar certificado de seguridad en windows xp
Deshabilitar la comprobación de revocación de certificados para una aplicación en Windows (2)
En esta posting blog (que cita otra fuente) tiene dos opciones: deshabilitar el control de CRL en todo el sistema o por aplicación:
Desactivar CRL Comprobación del panel de control de toda la máquina -> Opciones de Internet -> Avanzado -> Bajo seguridad, desmarque la opción Revisar la revocación del certificado del editor
Deshabilite la verificación de CRL para una aplicación .NET específica Vea este artículo de Microsoft KB: http://support.microsoft.com/kb/936707
Tengo una aplicación de escritorio .NET 3.5 que mostraba ralentizaciones periódicas en la funcionalidad cada vez que la máquina de prueba en la que estaba estaba fuera de la oficina.
Logré replicar el error en una máquina en la oficina sin conexión a Internet, pero solo cuando usé el analizador de rendimiento ANTS obtuve una imagen más clara de lo que estaba sucediendo.
En ANTS, vi que la "espera de sincronización" demoraba hasta 16 segundos que correspondían al retraso que podía ver en la aplicación cuando NHibernate intentó cargar el ensamblado System.Data.SqlServerCE.dll.
Si volviera a intentar la acción inmediatamente, funcionaría sin demora, pero si la dejara durante 5 minutos, la carga de la próxima vez que la probara sería lenta.
De mi investigación hasta ahora parece ser porque la dll SqlServerCE está firmada y el sistema está tratando de conectarse para obtener las listas de revocación de certificados y el tiempo de espera.
Al deshabilitar la configuración de "Detectar automáticamente la configuración" en la configuración de LAN de las opciones de Internet, el problema desaparece, al igual que la "Revocación de certificados de verificación de editores".
Pero los administradores en los que se implementará esta aplicación no estarán contentos con la idea de deshabilitar la verificación de certificados por máquina o por usuario, por lo que realmente necesito que la inhabilitación a nivel de aplicación de la verificación de CRL funcione.
Existe un error bien documentado en .net 2.0 que describe este comportamiento y ofrece una posible solución con un elemento de archivo de configuración.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
Sin embargo, esto NO funciona para mí, aunque estoy usando .net 3.5.
El dll SQLServerCE se está cargando dinámicamente por NHibernate y me pregunto si el hecho de que sea dinámico podría ser de alguna manera la razón por la que la configuración no funciona, pero no sé cómo podría verificarlo.
¿Alguien puede ofrecer sugerencias sobre por qué la configuración de configuración podría no funcionar?
¿O hay otra forma en que podría deshabilitar la verificación en el nivel de la aplicación, tal vez una configuración de política de CAS que puedo usar para establecer una excepción para la aplicación cuando se instala?
¿O hay algo que pueda cambiar en la aplicación para aumentar el nivel de confianza o algo así?
Puede especificar en el código si desea verificar la lista de revocaciones por aplicación:
ServicePointManager.CheckCertificateRevocationList = false;