.vbw-planning/milestones/aia-ssl-fix/01-aia-certificate-resolution/PLAN-02.md
Extend SourceMonitor::HTTP.client to accept an optional cert_store: parameter, enabling callers (like FeedFetcher's AIA retry) to provide a custom OpenSSL::X509::Store with additional certificates.
Add autoload inside module HTTP (after RETRY_STATUSES):
autoload :AIAResolver, "source_monitor/http/aia_resolver"
Add cert_store: nil keyword to client method signature.
Pass cert_store: through configure_request to configure_ssl:
cert_store: parameter to configure_requestconfigure_ssl(connection, settings, cert_store:)In configure_ssl: when no ssl_ca_file or ssl_ca_path is set, use cert_store || default_cert_store.
Add 2 tests:
cert_store: param is used when no ssl_ca_file or ssl_ca_path -- pass a custom store, verify connection.ssl.cert_store is the custom storecert_store: is ignored when ssl_ca_file is set -- configure ssl_ca_file, pass cert_store, verify ca_file takes precedence| Action | Path |
|---|---|
| MODIFY | lib/source_monitor/http.rb |
| MODIFY | test/lib/source_monitor/http_test.rb |
PARALLEL_WORKERS=1 bin/rails test test/lib/source_monitor/http_test.rb
bin/rubocop lib/source_monitor/http.rb test/lib/source_monitor/http_test.rb