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

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

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

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

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

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

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

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

  • установить сборки, поставляемую с КриптоПро .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>
     Copy imageCopy Code
    <COMReference Include="CERTCLIENTLib">
        <Guid>{372FCE32-4324-11D0-8810-00A0C903B83C}</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 GenCertDomainXPCS.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 2000, Windows XP или Windows 2003. Запуск с Windows Vista или выше не поддерживается. В текущем каталоге (или в GAC) должны находится сборки взаимодействия (Interop Dll) на COM объекты XEnroll и CertClient.

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

GenCertDomainXP.exe "TestCA\test-ca"

См. также