Медленный Citrix Web Interface/MMC-консоль, проблемы с CRL

citrix logoПри стечении определенных обстоятельств сервер, на которым расположен Web Interface, может отдавать страницу в течении весьма длительного времени. Случается это в тех случаях, когда не подключенный к интернету сервер был перезагружен или был перезагружен IIS и, одновременно с этим используется 3rd party SSL сертификат.

Ниже представлены workaround и объяснение механизма CRL.

Workaround

  1. Проверьте версию ASP.net, которая используется с вашим Web Interface. Отредактируйте aspnet.config в надлежащем каталоге C:\Windows\Microsoft.NET\Framework\v[num].
  2. Добавьте следующую запись в конфигурационный файл и перезапустите IIS:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <runtime>
        <generatePublisherEvidence enabled="false"/>
    </runtime>
</configuration>

Объяснение механизма работы CRL

CRL (certificate revocation list) – список отозванных сертификатов, позволяющий быстро и без лишней пыли проверить был ли отозван сертификат и действителен ли он. Есть два способа выполнить такую проверку: загрузить CRL целиком или, воспользовавшись OCSP (online certificate status protocol), выполнить проверку только интересующего сертификата. Не надо путать Expiried сертификаты (истек срок) и Revoked (сертификат был отозван).

Соответственно тормоза берутся когда рабочая станция или сервер, не будучи подключенными к интернетам, пытается загрузить CRL или выполнить проверку по OCSP. До тех пор пока соединение не отвалится по timeout свой web interface вы не увидите.

Эта проблема актуальна не только для сайтов, но и для приложений, написанных на .NET (фича называется Code Security Access – CAS). Когда загружается какой-либо модуль система ожидает подтверждения о том, что CLR (Common Language Runtime) подписан сертификатом от издателя и делает ровно то, для чего он предназначен.

Выключать CRL полностью сильно не рекомендуется для окружений, находящихся в эксплуатации, однако не возбраняется отключить его в процессе поиска неисправностей. О способе это сделать написано в разделе workaround в начале статьи.