-
Notifications
You must be signed in to change notification settings - Fork 19
Update certificate dirs and file names on FreeBSD #43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Also built a custom version of uv, works flawlessly against in-house servers and public ones. |
e741775 to
364b1e6
Compare
|
This seems fairly divergent from what Go is doing for FreeBSD and I suspect that project has a lot more deployment in the real world than |
Good point. This needs a clean up for FreeBSD. We have started using Go for a DB project, but aren't doing any outbound connections at the moment, therefore I didn't notice it. I am sure it will be a problem as well and needs attention. I need to create an enterprise test with https://github.com/golang-auth/go-gssapi written by @jake-scott, but won't be able to before next year. I'd be happy to address also for the Go community because this might hit us sooner or later. |
FreeBSD contains a canonical certstore managed by certctl(8) since 12.2 located in the base system (/etc/ssl), search there first. Alternatively, a user can populate a custom store in distbase (/usr/local/etc/ssl) with certctl(8) which shall be queried if the former does not exist. At last, there is a store for OpenSSL from the ports (/usr/local/openssl) outside of certctl(8)'s reach. Within these there can be also a bundle in parallel to a hashed directory. This fixes rustls#20 and fixes rustls#37
364b1e6 to
20a356e
Compare
|
I'm sorry, after all these iterations we (after some private discussion) still don't feel confident in these changes. We'd rather stick to the smaller set derived from what Go uses (which arguably has a much larger install base). If you have other needs, there's always the opportunity to set |
That's quite disappointing because I have put quite some effort to explain explictly every single one. If you are still afraid, we can completely narrow down to |
|
@djc I have pushed a simplified version. |
|
It doesn't seem unreasonable to just go fix golang really quickly, if they insist. I'm not quite sure I understand the apprehension (particularly because the paths in golang come from golang folks, not from FreeBSD folks that design this stuff for their OS and the changes wouldn't impact others), but it's a valid policy and you can see why they might want that. |
The hint with golang I wanted to fix next after this--and I agree with you, it should be after the first party (us), not a third party (golang). |
FreeBSD contains a canonical certstore managed by certctl(8) since 12.2 located in the base system (/etc/ssl), search there first. Alternatively, a user can populate a custom store in distbase (/usr/local/etc/ssl) with certctl(8) which shall be queried if the former does not exist. At last, there is a store for OpenSSL from the ports (/usr/local/openssl) outside of certctl(8)'s reach. Within these there can be also a bundle in parallel to a hashed directory.
This fixes #20 and fixes #37
FreeBSD port maintainer here.
Improvement on top of @djc's work:
certctl(8)'s introduction on FreeBSD 12.2 make life much easier.CERTIFICATE_DIRSuses those two from it. Additionally fromsecurity/openssl*./usr/local/share/certsis a source forcertlctl(8)which ends up in either of them, thus would lead to duplicates. ExtendedCERTIFICATE_FILE_NAMESby those files created bycertctl(8)from FreeBSD 15+ or ultimately for those who still installsecurity/ca_root_nsswhich is included in/usr/share/certs/trustedanyway.Sample code:
Verification in a standalone application while removing and adding potential candidates:
Running against publically available servers as well as in-house with enterprise CA structure.