diff options
author | Matthew Miller <matthew@millerti.me> | 2022-02-08 21:34:37 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-08 21:34:37 -0800 |
commit | a8b97311fdec49734d2476c8654202b567d89ffb (patch) | |
tree | f1083c3d7a603c59090bd7720a790d2bdf37bb3e /packages/server/src/helpers/validateCertificatePath.ts | |
parent | a57a1078f5438c9d9b1a095bd797e927b1a625c9 (diff) | |
parent | 87ad08ff5db7bc7d80e1f4f29d96fb1108adc714 (diff) |
Merge pull request #177 from MasterKale/fix/remove-expired-safetynet-root-cert
fix/remove-expired-safetynet-root-cert
Diffstat (limited to 'packages/server/src/helpers/validateCertificatePath.ts')
-rw-r--r-- | packages/server/src/helpers/validateCertificatePath.ts | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/server/src/helpers/validateCertificatePath.ts b/packages/server/src/helpers/validateCertificatePath.ts index 8cacb0b..77d7f77 100644 --- a/packages/server/src/helpers/validateCertificatePath.ts +++ b/packages/server/src/helpers/validateCertificatePath.ts @@ -59,8 +59,11 @@ async function _validatePath(certificates: string[]): Promise<boolean> { const subjectCert = new X509(); subjectCert.readCertPEM(subjectPem); + const isLeafCert = i === 0; + const isRootCert = i + 1 >= certificates.length; + let issuerPem = ''; - if (i + 1 >= certificates.length) { + if (isRootCert) { issuerPem = subjectPem; } else { issuerPem = certificates[i + 1]; @@ -82,7 +85,13 @@ async function _validatePath(certificates: string[]): Promise<boolean> { const now = new Date(Date.now()); if (notBefore > now || notAfter < now) { - throw new Error('Intermediate certificate is not yet valid or expired'); + if (isLeafCert) { + throw new Error('Leaf certificate is not yet valid or expired'); + } else if (isRootCert) { + throw new Error('Root certificate is not yet valid or expired'); + } else { + throw new Error('Intermediate certificate is not yet valid or expired'); + } } if (subjectCert.getIssuerString() !== issuerCert.getSubjectString()) { |