]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
lib/mk-ca-bundle.pl: skip certs passed Not Valid After date
authorDaniel Stenberg <daniel@haxx.se>
Thu, 30 Sep 2021 21:10:35 +0000 (23:10 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 30 Sep 2021 21:37:55 +0000 (23:37 +0200)
With this change applied, the now expired 'DST Root CA X3' cert will no
longer be included in the output.

Details: https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/

Closes #7801

lib/mk-ca-bundle.pl

index 910fedb0ca38213eb40d5968685f17a7e4e7bb05..e5a7420c0eb4f1e5b181e994c86dfbc0dab247ba 100755 (executable)
@@ -436,9 +436,25 @@ while (<TXT>) {
       last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/);
     }
   }
-  elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Not Valid After |Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) {
+# Not Valid After : Thu Sep 30 14:01:15 2021
+  elsif(/^# Not Valid After : (.*)/) {
+      my $stamp = $1;
+      use Time::Piece;
+      my $t = Time::Piece->strptime
+          ($stamp, "%a %b %d %H:%M:%S %Y");
+      my $delta = ($t->epoch - time()); # negative means no longer valid
+      if($delta < 0) {
+          $skipnum++;
+          report "Skipping: $caname is not valid anymore" if ($opt_v);
+          $valid = 0;
+      }
+      else {
+          $valid = 1;
+      }
+      next;
+  }
+  elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) {
       push @precert, $_;
-      $valid = 1;
       next;
   }
   elsif(/^#|^\s*$/) {