| ||||
| ||||
Кто знает, как добавить в сертификат CRL Distribution Points со следующим значением или что-то подобное: [1]CRL Distribution Point Distribution Point Name: Full Name: URL=http://www.domain.com/main.crl ???? И вообще, кто знает как добавить в сертификат свое поле ??? | ||||
Ответы: | ||||
| ||||
Для того чтобы добавить в сертификат свое поле нужно: 1. Если на Микрософтовом Центре Сертификации, то дописать модуль policy, который позволит обрабатывать выпускаемые сертификаты. Пример его есть в PlatformSDK 2. Если это делается только через CryptoAPI, то с использованием функции CryptEncodeObject, где одним из параметров передается структура lpszStructType [in] Pointer to an OID defining the structure type. If the high-order word of the lpszStructType parameter is zero, the low-order word specifies the integer identifier for the type of the specified structure. Otherwise, this parameter is a long pointer to a NULL terminated string. For more details about object identifier strings, their predefined constants and corresponding structures, see Constants for CryptEncodeObject and CryptDecodeObject. Для CRLDistributionPoint это тип X509_CRL_DIST_POINTS Пример создания сертификата также лежит в PlatformSDK в директории CreateCert. В общем случае: необходимо преобразовать в ASN требуемую структуру дополнения (extension) и добавить в сертификат. Например: CertExtension[CertInfo.cExtension].pszObjId = szOID_SUBJECT_KEY_IDENTIFIER; CertExtension[CertInfo.cExtension].fCritical = FALSE; CertExtension[CertInfo.cExtension].Value.cbData = dwSize; CertExtension[CertInfo.cExtension].Value.pbData = SubjectKeyIdentifier; Но через CryptEncodeObject можно добавить только типы, которые поддерживаются. Для остальных типов нужен свой кодировщик ASN. | ||||
| ||||
А у кого-нибудь есть программа способная корректировать , добавлять , удалять или как-то менять поля (дополнительный поля)в сертификате 3 версии. Либо полезные доки как и что для этого сделать.Буду очень признателен за помощь в это нелегком деле. | ||||
| ||||
Есть два варианта (из за неточной формулировки вопроса). 1. Если это не относится к Microsoft CA, то это пример создания сертификатов через CryptoAPI (makecert). 2. Если это функциональность CA, то это разработка своего Policy Modul для CA, примеры которого есть в Platform SDK. | ||||