yamine 0.10.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/lib/yamine/cli/system.rb +18 -2
- data/lib/yamine/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 73e497200efd0723559dff2f57e920e3d126d3caecf302770c37bec613d7998e
|
|
4
|
+
data.tar.gz: 2203cabc149df919703fb1182fb9ad76e9c6729d4ed105455c749dbfa7611593
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d30e26aec61c7036e349a84f6f241291756c7ee3207f6e1de210cb47465ccc94279619cc9657d3ecbc477b8983be8027ae2303d43456b4891762f79dec7bd885
|
|
7
|
+
data.tar.gz: 1a6a7e1b4e402b822a3d6f70ed6b19881c8927563c131875b322a7b750c9ec9368ba8a7f45ff99badfe55d23c54a964f163a80b8d10d6c45aa6a5a3ae5d9abc9
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.10.1] — 2026-09-10
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **The CA is regenerated before trust is judged, not after.** Both
|
|
8
|
+
trust paths asked `Certs.trusted?` first, which compares the trust
|
|
9
|
+
marker against the certificate ON DISK. A proxy regenerates the CA at
|
|
10
|
+
boot when the on-disk one is missing, expiring, or renamed — so after
|
|
11
|
+
a rename the marker still matched the OLD certificate, trust was
|
|
12
|
+
skipped as "already done", and the proxy then came up serving a CA the
|
|
13
|
+
keychain did not trust: TLS verification fails for every route. The
|
|
14
|
+
check now brings the CA up to date first (`ca_current_and_trusted?`,
|
|
15
|
+
used by both paths).
|
|
16
|
+
|
|
17
|
+
|
|
3
18
|
## [0.10.0] — 2026-09-10
|
|
4
19
|
|
|
5
20
|
The ask-local rename is finished: the two user-visible names it left
|
data/lib/yamine/cli/system.rb
CHANGED
|
@@ -334,13 +334,29 @@ module Yamine
|
|
|
334
334
|
puts "Installed root LaunchDaemon on port 443 (state: #{state_dir})."
|
|
335
335
|
end
|
|
336
336
|
|
|
337
|
+
# True when the trust store covers the CA this machine should be
|
|
338
|
+
# serving with — regenerating the CA first if it is missing,
|
|
339
|
+
# expiring, or renamed.
|
|
340
|
+
#
|
|
341
|
+
# The ordering is the whole point, so it lives in one place rather
|
|
342
|
+
# than at each call site. `trusted?` compares a marker against the
|
|
343
|
+
# fingerprint of the certificate ON DISK, and a proxy regenerates
|
|
344
|
+
# the CA at boot when the name changes. Checking the marker before
|
|
345
|
+
# the CA is current therefore reads a stale match, skips trust, and
|
|
346
|
+
# lets the proxy come up serving a CA the keychain does not trust —
|
|
347
|
+
# breaking TLS for every route.
|
|
348
|
+
def ca_current_and_trusted?(dir = Certs.state_dir)
|
|
349
|
+
Certs.ensure_ca(dir)
|
|
350
|
+
Certs.trusted?(dir)
|
|
351
|
+
end
|
|
352
|
+
|
|
337
353
|
# Root-only CA trust: the System keychain (all users, no prompt).
|
|
338
354
|
# Safe to call repeatedly — once the marker is set it is a no-op.
|
|
339
355
|
# Prints before doing work: the System keychain add can take a few
|
|
340
356
|
# seconds, and this runs in the root half of setup where silence
|
|
341
357
|
# reads as a hang.
|
|
342
358
|
def ensure_system_ca_trust
|
|
343
|
-
return if
|
|
359
|
+
return if ca_current_and_trusted?(Certs.state_dir)
|
|
344
360
|
|
|
345
361
|
puts " Trusting the CA into the System keychain..."
|
|
346
362
|
result = Trust.trust
|
|
@@ -760,7 +776,7 @@ module Yamine
|
|
|
760
776
|
# those users had already chosen to avoid.
|
|
761
777
|
def ensure_workstation!(ctx)
|
|
762
778
|
# 1. CA
|
|
763
|
-
unless
|
|
779
|
+
unless ca_current_and_trusted?(ctx.store.dir)
|
|
764
780
|
result = Yamine::Trust.trust
|
|
765
781
|
unless result[:trusted]
|
|
766
782
|
abort_setup("CA trust failed: #{result[:error]}",
|
data/lib/yamine/version.rb
CHANGED