ObjetoX509Req
El objeto X509Req es un objeto utilizado para crear solicitudes de certificado x509 y pertenece acryptomódulo
Puede crear una instancia de X509Req a través de su constructor. En el constructor, puede pasar parámetros para especificar el nombre distinguido del sujeto y la clave pública del certificado, por ejemplo:
1
2
3
4var crypto = require('crypto');
let pky = crypto.PKey.from(private_pem);
let req = new crypto.X509Req("CN=localhost,O=fibjs", pky);
Puede utilizar esta instancia para llamar a los métodos y propiedades de su clase principal para obtener información sobre el objeto de solicitud de certificado, por ejemplo:
1
2
3
4
5// return the DER format of the certificate request
let derReq = req.der();
// return the PEM format of the certificate request
let pemReq = req.pem();
También puede firmar el objeto X509Req para generar un objeto de certificado formal, por ejemplo:
1
2
3
4
5
6
7let opt = {
notBefore: new Date('2019-01-01') // valid from 2019-01-01
,
notAfter: new Date('2029-12-31') // valid to 2029-12-31
};
let crt = req.sign("CN=myy.mkx", pky, opt);
// CN=myy.mkx is the issuer of the certificate
Cabe señalar que para crear una solicitud de certificado x509 se utiliza el objeto X509Req, no el certificado en sí. Para obtener un certificado válido, es necesario firmarlo. Al mismo tiempo, la clave pública utilizada para firmar el certificado debe ser coherente con la clave pública utilizada en la solicitud del certificado.
relación de herencia
Constructor
X509Req
Constructor X509Req
1new X509Req();
Constructor X509Req, crea una solicitud de certificado basada en la información proporcionada
1
2
3new X509Req(String subject,
PKey key,
Integer hash = hash.SHA256);
Parámetros de llamada:
- subject: Cadena, el nombre distinguido del sujeto del certificado.
- key:PKey, la clave pública del certificado
- hash: Entero, algoritmo de resumen de certificado, el valor predeterminado eshash.SHA256
Constructor X509Req, carga una solicitud de certificado en formato DER
1new X509Req(Buffer derReq);
Parámetros de llamada:
- derReq:Buffer, solicitud de certificado en formato DER
Constructor X509Req, carga una solicitud de certificado en formato PEM
1new X509Req(String pemReq);
Parámetros de llamada:
- pemReq: Cadena, solicitud de certificado en formato DER
propiedades de miembros
subject
Cadena, obtiene el nombre distinguido del sujeto del certificado.
1readonly String X509Req.subject;
publicKey
PKey, obtenga la clave pública del certificado
1readonly PKey X509Req.publicKey;
sig_md
Integer, el algoritmo de resumen para la obtención del certificado
1readonly Integer X509Req.sig_md;
sig_pk
Entero, obtiene el algoritmo de firma del certificado.
1readonly Integer X509Req.sig_pk;
función miembro
import
Cargar una solicitud de certificado en formato DER
1X509Req.import(Buffer derReq);
Parámetros de llamada:
- derReq:Buffer, solicitud de certificado en formato DER
Cargar una solicitud de certificado en formato PEM
1X509Req.import(String pemReq);
Parámetros de llamada:
- pemReq: Cadena, solicitud de certificado en formato PEM
pem
Devuelve la codificación en formato PEM de la solicitud de certificado actual.
1String X509Req.pem();
Resultados de devolución:
- String, la codificación en formato PEM de la solicitud de certificado actual
der
Devuelve la codificación en formato DER de la solicitud de certificado actual.
1Buffer X509Req.der();
Resultados de devolución:
- Buffer, la codificación en formato DER de la solicitud de certificado actual
sign
Firmar la solicitud de certificado actual como certificado oficial
1
2
3X509Cert X509Req.sign(String issuer,
PKey key,
Object opts = {}) async;
Parámetros de llamada:
- issuer: Cadena, el nombre distinguido de la autoridad firmante
- key:PKey, la clave privada de la autoridad firmante
- opts: Objeto, otros parámetros opcionales
Resultados de devolución:
- X509Cert, devuelve el certificado oficial firmado
Los campos recibidos por opts son los siguientes:
1
2
3
4
5
6
7
8{
ca: false, // specify if the certificate is a CA certificate, default is false
pathlen: -1, // specify the path length of the certificate, default is -1
notBefore: "", // specify the certificate valid from date, default is current date
notAfter: "", // specify the certificate valid to date, default is 365 days after current date
usage: "", // specify the certificate usage, accept: digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign
type: "" // specify the certificate Netscape certificate type, accept: client, server, email, objsign, reserved, sslCA, emailCA, objCA
}
toString
Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.
1String X509Req.toString();
Resultados de devolución:
- String, devuelve la representación de cadena del objeto
toJSON
Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.
1Value X509Req.toJSON(String key = "");
Parámetros de llamada:
- key: Cadena, no utilizada
Resultados de devolución:
- Value, devuelve un valor que contiene JSON serializable