Пример создания запроса на сертификат средствами COM объекта XEnroll, отправка его на центр сертификации через Web интерфейс центра сертификации, получения и установки сертификата, получение и установки корневого сертификата.

Демонстрирует

Данный пример демонстрирует использование COM объекта XEnroll.

Исходные тексты и собранные модули

Исходные тексты примера собраны в файле GenCert.zip, который устанавливается в подкаталог Examples КриптоПро .NET SDK, по умолчанию директория %ProgramFiles(x86)%\Crypto Pro\.NET SDK\Examples. Пример имеет реалимзацию на C# и Visual Basic. Для работы с примерами необходимо распаковать файл с исходными текстами примеров в рабочую директорию (не рекомендуется использовать поддиректории %ProgramFiles(x86)%\Crypto Pro\.NET SDK). Данный пример находится в подкаталоге WebXP.

В состав КриптоПро .NET SDK входит собранная в Release версии из исходных текстов на C# в виде одной сборки исполняемый файл тестов GenCertWebXPCS.exe; данный файл может быть установлен в подкаталог Examples КриптоПро .NET SDK, по умолчанию директория %ProgramFiles(x86)%\Crypto Pro\.NET SDK\Examples. В эту же директорию будут установлена сборка взаимодействия (Interop assembly) необходимая для запуска примера.

Как собрать пример

Для сборки примера необходима сборка взаимодействия (Interop assembly) Interop.XENROLLLib. Есть несколько способов указать расположение этой сборки:

  • установить сборку, поставляемую с КриптоПро .NET SDK, в GAC;

  • отредактировать файл проекта, указав полный путь к сборке, поставляемой с КриптоПро .NET SDK;

  • Изменить файл проекта, указав задачу на генерацию сборки взаимодействия, например:

     Copy imageCopy Code
    <COMReference Include="XENROLLLib">
        <Guid>{5B9169C0-DB65-42AA-A38A-0726846AAEB3}</Guid>
        <VersionMajor>1</VersionMajor>
        <VersionMinor>0</VersionMinor>
        <Lcid>0</Lcid>
        <WrapperTool>tlbimp</WrapperTool>
        <Isolated>False</Isolated>
    </COMReference>

Сборка примера осуществляется вызовом msbuild из состава .Net Framework 2.0 или .Net Framework 3.5 или .Net Framework 4.0 c передачей соответствующего имени проекта, например, следующим образом:

%windir%\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe GenCertWebXPCS.20.csproj

Для сборки примера можно использовать Microsoft Visual Studio как через файл проекта, так и через файл решения (solution). Решения GenCertXPCS.2005.sln и GenCertXPVB.2005.sln или проекты с суффиксом .20 для Microsoft Visual Studio 2005; решения GenCertXPCS.2008.sln и GenCertXPVB.2008.sln или проекты с суффиксом .35 для Microsoft Visual Studio 2008; решения GenCertXPCS.2010.sln и GenCertXPVB.2010.sln или проекты с суффиксом .40 для Microsoft Visual Studio 2010.

Пример собирается в каталог bin\Debug для Debug конфигурации или в каталог bin\Release для Release конфигурации.

Как запустить пример

Для запуска данного примера необходимо настроить стандартный изолированный (Standalone) Microsoft центр сертификации, входящий в поставку серверных операционных систем Windows Server 2000, Windows Server 2003, Windows Server 2008 на автоматический выпуск российских сертификатов. Необходимо установить стандартный Web интерфейс к этому центру сертификации. Можно воспользоваться уже настроенным тестовым центром сертификации КрипоПро находящимся по адресу: http://www.cryptopro.ru/certsrv С машины, с которой предполагается запуск примера, должен быть доступ к Web страницам центра сертификации.

Запуск примера должен осуществляться с ОС Windows 2000, или Windows XP, Windows 2003. Запуск с Windows Vista или выше не поддерживается. В текущем каталоге (или в GAC) должна находится сборки взаимодействия (Interop Dll) на COM объект XEnroll.

Запуск примера необходимо осуществлять из папки с собранным примером: bin\Debug для Debug конфигрурации или bin\Release для Release конфигрурации. Для запуска примера необходимо в командной строке передать имя запускаемого файла (GenCertWebXP.exe) и, в качестве параметера, URL адрес центра сертификации например:

GenCertWebXP.exe "http://www.cryptopro.ru/certsrv"

См. также