При печати сертификатов на бумажный носитель добавляются лишнее кавычки в имени субъекта и издателя.
Опубликовано Станислав Королев on 2016-05-17 11:55
|
|
Проблема встречается, если при выпуске сертификата в имени субъекта и издателя используются кавычки (актуально для сборки УЦ 2.0.5938.0000 и более ранних версий). Настроить правильную печать имён субъектов и издателей можно, отредактировав макет документа. Для этого заходим на сервер ЦР. Запустите командную строку администратора УЦ (Пуск - Все программы - Крипто-Про - Командная строка управления УЦ (Администратор)). Для получения списка форм документов выполните команду: PS C:\> $list = Get-RAReport После выполнения этой команды в переменной $list будет содержаться список форм документов. Вы можете просмотреть список, набрав в командной строке: PS C:\> $list
Далее для примера будет использоваться макет – «Сертификат центра сертификации». Для просмотра и редактирования необходимого нам макета документа выполните команду, указав номер индекса макета (индексация в списке начинается с нуля, для макета «Сертификат центра сертификации» - номер индекса 13): PS C:\> Edit-RAReport $list[13] Откроется окно дизайнера макета документа. Далее нажимаем иконку «Окна» - выбираем «Поля» - правой кнопкой на «Поля» - нажимаем «Добавить вычисляемое поле» (необходимо добавить 2 вычисляемых поля). Получаем два поля.
Редактируем имена на более понятные: 1) ИмяИздателяБезКавычек 2) ИмяСубъектаБезКавычек Для этого выбираем поле calculatedField1 и нажимаем иконку «Окна» - выбираем «Свойства», переименовываем на ИмяИздателяБезКавычек и закрываем окно «Свойства». Аналогично делаем для поля calculatedField2 и переименовываем на ИмяСубъектаБезКавычек.
Далее нажимаем «Скрипты» - выбираем «ИмяИздателяБезКавычек».
Метод – GetValue
И копируем следующий скрипт: System.Security.Cryptography.X509Certificates.X509Certificate2 cert = (System.Security.Cryptography.X509Certificates.X509Certificate2)e.GetColumnValue("Сертификат"); e.Value = cert.IssuerName.Decode( System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags.DoNotUseQuotes | System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags.Reversed );
Далее выбираем «ИмяСубъектаБезКавычек» Метод – Getvalue И копируем следующий скрипт: System.Security.Cryptography.X509Certificates.X509Certificate2 cert = (System.Security.Cryptography.X509Certificates.X509Certificate2)e.GetColumnValue("Сертификат"); e.Value = cert.SubjectName.Decode( System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags.DoNotUseQuotes | System.Security.Cryptography.X509Certificates.X500DistinguishedNameFlags.Reversed );
И получаем следующие:
Переходим обратно на макет документа (нажать кнопку «Скрипты») и переименовываем следующие строки (см. скриншоты ниже): Было:
Стало:
Далее нажимаем «Сохранить и закрыть». Если по каким-либо причинам, Вы хотите восстановить макет документа по умолчанию, выполните команду: PS C:\> Reset-RAReport $list[индекс]
| |
|