При печати сертификатов на бумажный носитель добавляются лишнее кавычки в имени субъекта и издателя.
Опубликовано Станислав Королев 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[индекс] 

 

 

(7 плюсик(ов))
Класс!
Не очень :(

Коментарии (0)