Недавно я столкнулся с проблемой Windows 2003 (по-видимому, она также существует и в других версиях), когда сервер SSL / TLS запрашивает проверку подлинности сертификата клиента и имеет более 16 КБ DN доверенных сертификатов, Internet Explorer (или любое другое приложение, которое использует schannel.dll) не может завершить рукопожатие SSL. (В двух словах, сервер разбивает сообщение на куски размером 2 ^ 14 байт, согласно RFC 2246 с. 6.2.1, но Schannel не был написан для поддержки этого. Я получил подтверждение от поддержки Microsoft, что это недостаток в Schannel и что они рассматривают его исправление в будущем выпуске.)
Поэтому я пытаюсь найти способ легко разобрать мои доверенные сертификаты (я использую Apache в качестве сервера, поэтому все они в формате PEM), чтобы получить общую длину DNN в формате ASN.1 ( именно так их отправляют по телеграфу во время рукопожатия), и, таким образом, я вижу, что я слишком близко подхожу к пределу. Я пока не смог найти способ сделать это: функция OpenSSL asn1parse подходит близко, но, похоже, она не предоставляет способ получить последовательность ASN.1 только для имени эмитента, что и является Мне нужно.
Есть предложения?