Interfaz IX509Extension (certenroll.h)
La interfaz IX509Extension se puede usar para definir una extensión para una solicitud de certificado. Las extensiones de certificado proporcionan información sobre el uso de claves, las directivas de certificado y las restricciones, los formularios de nombres alternativos, etc. Una extensión consta de un identificador de objeto (OID), un valor booleano que identifica si la extensión es crítica y una matriz de bytes que contiene el valor de extensión, como se muestra en la siguiente sintaxis de notación abstracta uno (ASN.1).
Extension ::= SEQUENCE
{
extnId OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTETSTRING
}
La API de inscripción de certificados contiene las siguientes interfaces, derivadas de IX509Extension, que puede usar para crear las distintas extensiones que se usan con más frecuencia en una infraestructura de clave pública (PKI) que se basa en un servidor de certificados de Windows.
Interfaz | Descripción |
---|---|
IX509ExtensionAlternativeNames | Define una extensión AlternativeNames que contiene uno o varios formularios de nombre alternativos para el asunto de la solicitud de certificado. |
IX509ExtensionAuthorityKeyIdentifier | Define una extensión AuthorityKeyIdentifier que habilita la identificación de la clave pública de la entidad de certificación que corresponde a la clave privada de la entidad de certificación que firmó un certificado emitido. Se usa mediante la ruta de acceso de certificado que compila software en un servidor Windows para buscar el certificado de la entidad de certificación. |
IX509ExtensionBasicConstraints | Define una extensión BasicConstraints que identifica si la entidad se puede usar como entidad de certificación y, si es así, el número de entidades de certificación subordinadas que pueden existir debajo de ella en la cadena de certificados. |
IX509ExtensionCertificatePolicies | Define una extensión CertificatePolicies que identifica las directivas en las que se ha emitido el certificado y los propósitos para los que se puede usar. |
IX509ExtensionEnhancedKeyUsage | Define una extensión EnhancedKeyUsage que identifica uno o varios usos de la clave pública contenida en el certificado. |
IX509ExtensionKeyUsage | Define una extensión KeyUsage que restringe las operaciones que puede realizar la clave pública contenida en el certificado. |
IX509ExtensionMSApplicationPolicies | Define una extensión MSApplicationPolicies que una aplicación puede usar para filtrar los certificados en función del uso permitido. Los usos permitidos se identifican mediante identificadores de objeto (OID). |
IX509ExtensionSmimeCapabilities | Define una extensión SmimeCapabilities que identifica las funcionalidades de descifrado de un destinatario de correo electrónico para que el remitente del correo electrónico pueda elegir el algoritmo de cifrado más seguro compatible con ambas partes. |
IX509ExtensionSubjectKeyIdentifier | Define una extensión SubjectKeyIdentifier que diferencia entre varias claves públicas que mantiene el propietario del certificado. El valor de extensión suele ser un hash SHA-1 de la clave. |
IX509ExtensionTemplate | Define una extensión de plantilla que identifica la plantilla de la versión 2 que se va a usar al emitir o renovar un certificado. |
IX509ExtensionTemplateName | Define una extensión TemplateName que identifica la plantilla de la versión 1 que se va a usar al emitir o renovar un certificado. |
La mayoría de las extensiones que se pueden crear mediante las interfaces anteriores se definen mediante el estándar de sintaxis X.509 de la versión 3. Para crear las extensiones de la versión 3 para las que Microsoft no proporciona un objeto personalizado, puede usar la interfaz IX509Extension . Estas extensiones se identifican en la tabla siguiente.
Extensión/OID | Descripción |
---|---|
AuthorityInformationAccess(XCN_OID_AUTHORITY_INFO_ACCESS) | Identifica cómo acceder a la información y los servicios de la entidad de certificación. El valor de extensión contiene una secuencia de URI. |
CrlDistributionPoints(XCN_OID_CRL_DIST_POINTS) | Contiene el URI de la lista de revocación de certificados base (CRL). |
FreshestCRL(XCN_OID_FRESHEST_CRL) | Contiene el URI de la CRL delta. La misma sintaxis ASN.1 se usa para esta extensión y la extensión CrlDistributionPoints . |
NameConstraints(XCN_OID_NAME_CONSTRAINTS) | Identifica el espacio de nombres en el que se deben ubicar todos los nombres de firmantes de certificados de una jerarquía de certificados. La extensión solo se usa en un certificado de entidad de certificación. |
PolicyConstraints(XCN_OID_POLICY_CONSTRAINTS) | Restringen la validación de rutas prohibiendo la asignación de directivas o exigiendo que cada certificado de la jerarquía contenga un identificador de directiva aceptable. |
PolicyMappings(XCN_OID_POLICY_MAPPINGS) | Identifica las directivas de una entidad de certificación subordinada que corresponden a las directivas de la entidad de certificación emisora. El valor de extensión contiene una secuencia de emisión de entidades de certificación y asignaciones de directivas subordinadas de entidad de certificación representadas por identificadores de objeto. |
PrivateKeyUsagePeriod(XCN_OID_PRIVATEKEY_USAGE_PERIOD) | Especifica un período de validez diferente para la clave privada que para el certificado con el que está asociada la clave. |
SubjectDirectoryAttributes(XCN_OID_SUBJECT_DIR_ATTRS) | Transmite atributos de identificación, como la nacionalidad sobre el sujeto del certificado. El valor de extensión es una secuencia de pares de valores OID. |
Por último, puede usar la interfaz IX509Extension para definir extensiones privadas que contienen información única para una comunidad específica.
Las extensiones se agregan a la estructura Attributes de una solicitud PKCS #10 y a la estructura TaggedAttributes de una solicitud CMC. Para agregar extensiones a cualquier formato de solicitud, primero debe agregarlas a una colección IX509Extensions y usar la colección para inicializar un objeto IX509AttributeExtensions . Para obtener más información, vea los temas PKCS #10 Extensions (Extensiones de PKCS #10 ) y CMC Extensions (Extensiones de CMC ).
Herencia
La interfaz IX509Extension hereda de la interfaz IDispatch . IX509Extension también tiene estos tipos de miembros:
Métodos
La interfaz IX509Extension tiene estos métodos.
IX509Extension::get_Critical Especifica y recupera un valor booleano que identifica si la extensión de certificado es crítica. (Obtener) |
IX509Extension::get_ObjectId Recupera el identificador de objeto (OID) de la extensión. |
IX509Extension::get_RawData Recupera una matriz de bytes que contiene el valor de extensión. (IX509Extension.get_RawData) |
IX509Extension::Initialize Inicializa un objeto IX509Extension mediante un identificador de objeto (OID) y una matriz de bytes que contiene la extensión codificada reglas de codificación distinguida (DER). |
IX509Extension::p ut_Critical Especifica y recupera un valor booleano que identifica si la extensión de certificado es crítica. (Put) |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | certenroll.h |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de