ca-certificates 2021-07-05 (new formula)#86304
Conversation
Formula/openssl@1.1.rb
Outdated
There was a problem hiding this comment.
Let's just make this a separate formula. It's in use in multiple formulae anyway.
There was a problem hiding this comment.
Not sure of the best strategy for that.
Ideally we'd handle the keychain stuff there and then the file can be used by multiple formula. But the problem is we currently use openssl in that processing. A bit of a chicken and egg problem.
There was a problem hiding this comment.
Or maybe /usr/bin/openssl is enough actually. I forget that still exists.
There was a problem hiding this comment.
I don't follow -- the cacert resource is used only in post_install_from_pem, where no openssl binary is needed. Where do we need openssl here?
Or, I guess alternatively we can just use /etc/ssl/cert.pem. Is there any reason why we don't want that one?
There was a problem hiding this comment.
I don't follow -- the
cacertresource is used only inpost_install_from_pem, where noopensslbinary is needed. Where do we needopensslhere?
The keychain part. I've just pushed what I was thinking of.
Or, I guess alternatively we can just use
/etc/ssl/cert.pem
I can't recall the differences between that and the keychain, but we're going to want to avoid that on older macOS anyway since it's severely outdated.
7af4003 to
9f51be7
Compare
Formula/openssl@1.1.rb
Outdated
There was a problem hiding this comment.
I was thinking of making this a Linux- and old-macOS-only dependency, so that we can keep the keychain post_install in this formula. This way we can still do depends_on "cacert" in gnutls, which currently has its own logic for generating the CA cert bundle.
There was a problem hiding this comment.
gnutls does the exact same Keychain stuff. I'm not sure I follow how there wouldn't be a conditional in gnutls as well.
There was a problem hiding this comment.
It's not exactly the same:
homebrew-core/Formula/gnutls.rb
Lines 104 to 112 in c30079a
There was a problem hiding this comment.
Honestly, I see no reason why that can't apply to OpenSSL as well. It's a self-signed Kerberos certificate - not a SSL root certificate.
46fc08d to
6a73295
Compare
|
The general idea I have here is I would also like to get rid of the copy paste chaos we have where I have to make the same change in 3 different places. Plus decoupling CA cert updates from an OpenSSL & GnuTLS revision bump is nice. |
|
Oh and to resolve #54235 finally. |
6a73295 to
a7fdbe7
Compare
@FiloSottile will be pleased to learn about this. (Apologies for the ping, but this stuff seems to be in your wheelhouse, so it'd be nice to hear your thoughts here too.) |
Just to summarise, the idea is:
|
a7fdbe7 to
dd59599
Compare
|
@Homebrew/core I know this topic has come up on a number of occasions on Slack so here's a ping if you're interested (and sorry if you're not). |
dd59599 to
508bfbe
Compare
Yes.
Apple seem to rarely update older trust stores. The Mojave cert store, for example, has not been modified since the 2019-002 security update (December 2019). Catalina's cert store has not been modified since June 2020 (presumably 10.15.6). Monterey (beta) meanwhile was updated a month ago. So "not getting update from Apple" might be anything that's not the latest version.
Yep I absolutely agree. This should have been added when the keychain was expanded beyond Apple roots. I've added a restriction to the
Curl store filters to only include |
ddf8111 to
b08ff2d
Compare
You probably want only "SSL Server CA", which are the ones actually bound by the Baseline Requirements. (It also matches curl's |
Yeah kinda just realised after pushing. Fixed now! |
b08ff2d to
ca7ae59
Compare
Formula/openssl@1.1.rb
Outdated
There was a problem hiding this comment.
Won't this make everyone have the post_install done twice when they brew upgrade or brew install openssl@1.1 once this is merged? I can see why we need it, but I wonder if there's a way to avoid doing this twice in a single brew invocation.
We can save this for later though.
There was a problem hiding this comment.
I can probably drop this in favour of regular ca-certificates updates & revision bumps, which is what we should be doing.
ca7ae59 to
d321d6f
Compare
|
Just noticed we used to ship a CA bundle: Homebrew/legacy-homebrew#28658 This doesn't necessarily have any bearing on what we're doing here today, but I thought I'd link this here for anyone who needs to look up things we've done before and the reasons for them. |
|
So many chickens, so many eggs. 10.14 audit of course fails because it needs Homebrew/brew#12167, but Homebrew/brew#12167 in turn needs this PR. Anyhow, this should be good to go. |
|
|
|
🐔 🥚 🐔 |
|
Not an |
|
Timestamps are off: |
|
That is really weird and makes no sense. I could try a rebottle? It definitely was working in one of the attempts here, and I've only been fiddling with postinstall since. |
|
I'll poke at it; go to bed. |
| macos_post_install | ||
| else | ||
| linux_post_install |
There was a problem hiding this comment.
I'd be tempted to just inline these.
This change aligns the formula with OpenSSL 1.1. See Homebrew#86304. Also, make this keg-only on Linux too while we're still primarily using `openssl@1.1`, and remove `enable-md2`.
This change aligns the formula with OpenSSL 1.1. See #86304. Also, make this keg-only on Linux too while we're still primarily using `openssl@1.1`, and remove `enable-md2`. Closes #87023. Signed-off-by: Bo Anderson <mail@boanderson.me> Signed-off-by: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com>
brew install --build-from-source <formula>, where<formula>is the name of the formula you're submitting?brew test <formula>, where<formula>is the name of the formula you're submitting?brew audit --strict <formula>(after doingbrew install --build-from-source <formula>)? If this is a new formula, does it passbrew audit --new <formula>?Also, stop using the keychain on Yosemite and El Capitan, since these versions don't have the Let's Encrypt root.
I have not tested this on a 10.10 VM yet, but will before merging to make sure the PEM route actually works.