paragonie/certainty
Automate and manage cacert.pem for PHP projects to ensure reliable TLS certificate validation across diverse environments. Avoid disabling verification, reduce support burden, and keep HTTP clients secure. Requires PHP 8.3+.
Full Changelog: https://github.com/paragonie/certainty/compare/v3.0.1...v3.0.2
More nullable fixes missed in previous update.
pie-hosted.net rather than pie-hosted.com.This fixes deprecation warnings in PHP 8.4, but drops support for PHP < 8.3.
The device that contained the signing key has been destroyed, so we have promoted our backup key to the primary one and generated a new backup keypair.
Full Changelog: https://github.com/paragonie/certainty/compare/v2.8.2...v2.8.3
We had to reinstall the server. Bgcc1QfkP0UNgMZuHzi0hC1hA1SoVAyUrskmSkzRw3E= is the public key of the new default Chronicle server.
Previously, the default behavior of RemoteFetch was to check a Chronicle instance (i.e. the one at php-chronicle.pie-hosted.com), regardless of whether or not the bundle was already fetched and verified.
This was wasteful, and led to an accidental stress test of the Chronicle instance for the PHP community.
Now, the default behavior of RemoteFetch is to only query Chronicle instances on freshly-downloaded bundles, rather than every time getLatestBundle() is invoked.
We've already done a lot of work to ensure our server is stable even under the tremendous load we were seeing previously, but we do ask everyone to update to the latest version to improve the performance of your code that uses Certainty.
Updated minimum version of sodium_compat to version 1.11.0
Per #25: We've made it substantially easier to specify a different Chronicle URL and Public Key in case the one we operate ever goes down.
There is a table located at https://github.com/paragonie/certainty/blob/master/docs/README.md#php-chronicle-replicas-for-certainty which contains (currently only one) replica instances of the PHP Chronicle.
NEW: Trust Channels
To better support Enterprise users that want to manage their own internal certificate authorities, we've marked each bundle with its respective trust channel. Since our CA bundles come from Mozilla, the JSON file we provide is populated with "trust-channel": "Mozilla".
NEW: Composer Integration
You can now have Certainty request an up-to-date bundle at runtime by ensuring you add this entry to your composer.json file:
{
"scripts": {
"post-autoload-dump": [
"ParagonIE\\Certainty\\Composer::postAutoloadDump"
]
}
}
Then, you can simply use the local Fetch class instead of RemoteFetch in your application code. Every time you run composer update, it will fetch the latest bundles from Certainty.
This is a great way to reduce your runtime performance overhead while guaranteeing that you have the latest CACert bundle.
Note: You can create your own script that does the same thing. This is probably desirable if you'd like to put your configuration in a nonstandard location.
UPDATED: Psalm v2 will now be used on PHP 7 projects. This ensures we'll have better visibility into type safety issues as Psalm adds more checks over time.
FIXED: #22 Prevent infinite loops when trying to fetch newer bundles by using the locally installed CACert.pem bundles. Fix provided by @credomane.
Fixes #18
Version 1.x is deprecated and we will not be providing noncommercial support. Please upgrade to v2 as soon as you can.
Fixed #16
ParagonIE_Sodium_Compat instead of ParagonIE_Sodium_File.CURLOPT_SSLVERSION.Certainty's API is now stable, and we're confident in its ability to solve CA certificate issues for the PHP ecosystem.
Changes since 0.2.0:
LocalCACertBuilder to publish to configured Chronicles.This isn't just the second minor release of Certainty, it's the first release candidate for v1.0.0.
Changes since v0.1.1:
RemoteFetch now verifies that fresh CA-Cert bundles have been logged into a Chronicle instance.Exception class.Like v0.1.0 but without a typo that breaks tests.
First semi-stable release of Certainty.
How can I help you explore Laravel packages today?