What does this MR do?
We seem to set the following two constants:
I believe probably via ENV vars.
When loading custom root certificates for X509 commit signing verification, the certificate is bundled into that directory, and the file constant set to point to it.
OpenSSL then seemingly completely ignores
OpenSSL::X509::DEFAULT_CERT_FILE, and fails to pick up the cert file from inside
OpenSSL::X509::DEFAULT_CERT_DIR, even if you forcibly add that path to the store again with
However if you add the
store.add_cert(OpenSSL::X509::DEFAULT_CERT_FILE), it does work, and it can successfully verify the commits.
I'm not sure if this is an upstream bug in the
openssl ruby library or not, but this patch forcibly loads the cert when testing for commit signing, which fixes that feature in some circumstances.
I found another instance of us force-loading this file: https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/gitaly_client.rb#L65
Related #293697 (closed)
Screenshots (strongly suggested)
Does this MR meet the acceptance criteria?
Documentation (if required)
Code review guidelines
Merge request performance guidelines
Separation of EE specific content
Availability and Testing
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process.
Tested in all supported browsers
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
Label as security and @ mention
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
Security reports checked/validated by a reviewer from the AppSec team