totten/ca-config
totten/ca-config provides a small PHP API for reading, modifying, and writing configuration files, with helpers for environment-specific settings. It suits CiviCRM-style PHP applications that need safe, programmatic config updates.
verify => false. Any product handling customer data should treat “TLS verification stays on by default, everywhere” as a roadmap commitment; a CA-resolution layer makes that the path of least resistance. Note it only resolves where the bundle is — it never replaces actual verification, and the product must fail closed.composer/ca-bundle and wrap it” — framing that saves engineering a from-scratch design debate.Consider it only when all of the following hold:
openssl.cafile, curl.cainfo) — beyond what our HTTP client already does.Look elsewhere — or build internally — when:
composer/ca-bundle, present in effectively every Composer project and the de facto standard. Much of this package’s surface overlaps with it.ca-certificates or from undocumented proxy setup, the fix is a Dockerfile and documentation change, not a dependency.To executives: This is a small, cheap insurance policy against a specific and expensive failure mode — customers unable to connect our product to anything over HTTPS because their machine’s certificate configuration is unusual. It surfaces as failed installs, frustrated support tickets, and lost enterprise deals at security review. We are not proposing a large investment. The recommended action is a short spike to confirm the problem is real in our install base, then either a thin internal wrapper over the standard composer/ca-bundle or, if the detection logic proves valuable, a vendored fork of this library. Cost is days, not weeks; the return is fewer setup tickets and a clean answer to “how do you handle custom certificate authorities?”
To engineering: The package under evaluation is a narrow, lightly maintained utility for resolving a default CA bundle path. We should not adopt it as-is — one maintainer, no dependents, no Laravel integration, and some ambiguity between its stated description and its actual CA-resolution behavior. It is, however, a useful reference implementation for the detection cases we would otherwise forget (Windows, macOS, distro-specific bundle paths, INI overrides). The concrete ask is a timeboxed spike: inventory every PHP HTTP client and its current CA configuration, reproduce the top TLS failure modes in our Docker images and local dev setups, and determine how much composer/ca-bundle already covers. Deliver either a small config default or an internal CaBundleResolver adapter with an explicit override hook (env var or config key) for custom CAs, cached per process and logging which CA source was selected. Non-negotiable requirement: certificate verification stays enabled by default, failures are surfaced as actionable errors, and the fallback can never silently downgrade to an insecure connection.
How can I help you explore Laravel packages today?