Skip to content

webpki-ccadb: add V5 certificate records - #130

Open
elichai wants to merge 1 commit into
rustls:mainfrom
elichai:ccadb-v5-records
Open

webpki-ccadb: add V5 certificate records#130
elichai wants to merge 1 commit into
rustls:mainfrom
elichai:ccadb-v5-records

Conversation

@elichai

@elichai elichai commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

The first thing necessary in order to make rustls-platform-verifier use this crate in order to build a list of all CRLs
This uses https://www.ccadb.org/resources "All Certificate Information Reports" V5.
It cannot be merged with the existing endpoint as they return different things where the V5 endpoint can return "duplicate" certificate fingerprints(e.g. one for a root cert and one for an intermediate cert), e.g.:

"Asseco Data Systems S.A.","A010457","Certum Trusted Network CA 2","A000061","Asseco Data Systems S.A.","Root Certificate","","Not Included","Not Included","Removed","Not Yet Included","Apple: Not Included; Google Chrome: Not Included; Microsoft: Removed; Mozilla: Not Yet Included","","9F8B05137F20ACDE9B996410F4D0BF7971A1006DC99E094C346D279B93CFF7AE","","2011.10.06","2046.10.06","","tqFUOQLDoD+Oirz61PgcptE6Dv0=","false","","","","","","","","","","Ernst & Young, LLP","Poland","false","https://www.cpacanada.ca/api/getPDFWebTrust?attachmentId=84a61b66-db2a-4a62-a227-ea3624e52f3e","WebTrust","2026.04.27","2025.02.11","2026.02.10","https://www.cpacanada.ca/api/getPDFWebTrust?attachmentId=55c7a16e-283a-4bf2-8e88-3f716fff5cea","WebTrust","2026.04.03","2025.02.11","2026.02.10","https://www.cpacanada.ca/api/getPDFWebTrust?attachmentId=a23fcf5d-bdb5-45d3-abbb-2b230214f989","WebTrust","2026.04.03","2025.02.11","2026.02.10","https://www.cpacanada.ca/api/getPDFWebTrust?attachmentId=7799eaad-dd3c-489b-9dd1-21c5c1c6046c","WebTrust","2026.04.03","2025.02.11","2026.02.10","https://www.cpacanada.ca/api/getPDFWebTrust?attachmentId=c175793c-60ed-4c70-8bf7-f875050e202a","WebTrust","2026.04.03","2025.02.11","2026.02.10","https://www.cpacanada.ca/api/getPDFWebTrust?attachmentId=5071ae66-985b-4eba-81c0-ee2df7f0a57b","WebTrust","2026.04.03","2025.02.11","2026.02.10","","","","","","","https://www.certum.pl/pl/cert_wiedza_repozytorium_pl_en/","false","https://www.certum.eu/en/wp-content/uploads/2025/11/Certification-Policy-of-Certum-Certification-Services_v5.2.pdf","2025.12.01","false","https://www.certum.eu/en/wp-content/uploads/2026/05/Certification-Practice-Statement-of-Certum-Certification-Services_v8.4.pdf","2026.06.01","false","https://repository.certum.pl/cp-cps-tls/certum-cp-cps-tls-certificates-en-1-0-1.pdf","2026.07.20","false","","","","","","False","True","False","False","Polska"
"Asseco Data Systems S.A.","A003934","Certum Trusted Network CA 2","A000815","Certum Trusted Network CA 2","Intermediate Certificate","","Not Trusted","Not Trusted","Not Trusted","Not Trusted","Apple: Included; Google Chrome: Included; Microsoft: Included; Mozilla: Included","Revoked","9F8B05137F20ACDE9B996410F4D0BF7971A1006DC99E094C346D279B93CFF7AE","B676F2EDDAE8775CD36CB0F63CD1D4603961F49E6265BA013A2F0307B6D0B804","2011.10.06","2046.10.06","","tqFUOQLDoD+Oirz61PgcptE6Dv0=","false","","","","[""http://crl.certum.pl/ctnca2.crl""]","","","","","","","","true","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","true","","","true","","","false","","","false","","","","","","False","False","False","False","Polska"

The plan is to use this in rustls-platform-verifier tests in order to keep an up-to-date CRL list.
Based on: rustls/rustls-platform-verifier#221 (comment)

I will create a follow-up PR in rustls-platform-verifier in the following days, showing how this is used

Comment thread webpki-ccadb/src/lib.rs
Comment thread webpki-ccadb/src/lib.rs
Comment on lines +86 to +89
/// Fetches certificate records from the CCADB All Certificate Records V5 report.
///
/// Records are returned in report order. The report can contain more than one record with the
/// same certificate fingerprint, so the result is not keyed by fingerprint.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC this CSV API is deprecated in favor of a new REST API? Worth checking whether that applies to this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Due to limiting the MaxPageSize to 100( See https://github.com/mozilla/CCADB-Tools/blob/master/API_AllCertificateRecords/README.md#pagination-metadata note that CCADB_Settings__c.AllCertRecordsAPI_DefaultPageSize__c is an internal configuration) it seems that using the REST API will require roughly ~103 POSTs instead of a single GET for the full csv

So unless they either improve this or announce the csv as deprecated I think it's better to stick to the CSV and not use the new REST API

What do you prefer that I'd do here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CSV will be deprecated in a few months, so I think we should stick with the REST API.

https://groups.google.com/a/ccadb.org/g/public/c/7TluxT9dtLY/m/Qqj4SiZyBwAJ

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've started working on this here:

@elichai happy if you want to tag team as I have enough other things on my plate -- feel free to stack PRs on top of mine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants