【问题标题】:How can I check the validity of the certificate in a p12 file in javascript?如何在 javascript 中检查 p12 文件中证书的有效性?
【发布时间】:2020-04-23 01:17:27
【问题描述】:

我正在开发一个应用程序,我需要检查上传的 p12 文件是否具有由受信任的证书颁发机构颁发的证书。我正在尝试在 javascript 中找到一种编程方式,但如果在 js 中不可能,我可以使用不同的语言。

我不知道这是最合适的工具,但我正在使用 node 的 forge 库并具有以下内容:

const p12 = fs.readFileSync(PATH_TO_PDF_P12_CERTIFICATE, 'binary');
const p12Asn1 = forge.asn1.fromDer(p12, false);
const p12Parsed = forge.pkcs12.pkcs12FromAsn1(p12Asn1, false, 'password');
const bags = p12Parsed.getBags({bagType: forge.pki.oids.certBag});

const caStore = forge.pki.createCaStore();

forge.pki.verifyCertificateChain(caStore, [Object.values(bags)[0][0].cert]);

但是,我的 caStore 似乎默认没有任何证书,我不知道如何获取它来检查我机器上已安装的证书。

【问题讨论】:

    标签: javascript node.js pkcs#12


    【解决方案1】:

    试试这个:

    npm install p12-pem --save

    从 'p12-pem' 导入 * as p12;

    /** * 给定一个 p12 文件,将其转换为 PEM 格式。 * @param {string} pathToCert p12 文件的相对路径。 * @param {string} p12 / 私钥的密码。 */ const {pemKey, pemCertificate, commonName} = p12.getPemFromP12(certPath, password); console.log('PEM中转换后的私钥:'); console.log(pemKey);

    console.log('PEM中转换后的证书:'); console.log(pemCertificate)

    console.log('提取的 commonName:'); console.log(commonName);

    来源(S): https://www.npmjs.com/package/p12-pem (AND>..) https://nodejs.org/en/about/releases/

    【讨论】:

    • 按照建议尝试安装和导入是否成功,撒哈拉?
    猜你喜欢
    • 1970-01-01
    • 2019-07-02
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    相关资源
    最近更新 更多