簡體   English   中英

如何檢查 javascript 中 p12 文件中證書的有效性?

[英]How can I check the validity of the certificate in a p12 file in javascript?

我正在開發一個應用程序,我需要檢查上傳的 p12 文件是否具有由受信任的證書頒發機構頒發的證書。 我試圖在 javascript 中找到一種編程方式,但如果在 js 中不可能,我可以使用不同的語言。

我不知道這是最合適的工具,但我正在使用節點的 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 默認情況下沒有任何證書,而且我不知道如何獲取它來檢查我的機器上已安裝的證書。

嘗試這個:

npm 安裝 p12-pem --save

從'p12-pem'導入*作為p12;

/** * 給定一個 p12 文件,將其轉換為 PEM 格式。 * @param {string} pathToCert p12 文件的相對路徑。 * @param {string} p12 / 私鑰的密碼。 */ const {pemKey, pemCertificate, commonName} = p12.getPemFromP12(certPath, password); console.log('PEM中轉換后的私鑰:'); 控制台.log(pemKey);

console.log('PEM中轉換后的證書:'); 控制台日志(pemCertificate)

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM