feat(portal): sign Apple profiles — Verified instead of 'unsigned' warning
ci / changes (push) Successful in 4s
ci / tc_booking (push) Has been skipped
ci / tc_operator (push) Has been skipped
ci / tc_website (push) Has been skipped
ci / tc_platform_api (push) Has been skipped
ci / test_platform_api (push) Has been skipped
ci / build_booking (push) Has been skipped
ci / build_operator (push) Has been skipped
ci / build_platform_api (push) Has been skipped
ci / tc_portal (push) Successful in 26s
ci / build_portal (push) Successful in 49s
ci / deploy (push) Successful in 42s
ci / changes (push) Successful in 4s
ci / tc_booking (push) Has been skipped
ci / tc_operator (push) Has been skipped
ci / tc_website (push) Has been skipped
ci / tc_platform_api (push) Has been skipped
ci / test_platform_api (push) Has been skipped
ci / build_booking (push) Has been skipped
ci / build_operator (push) Has been skipped
ci / build_platform_api (push) Has been skipped
ci / tc_portal (push) Successful in 26s
ci / build_portal (push) Successful in 49s
ci / deploy (push) Successful in 42s
Unsigned .mobileconfig installs trip macOS warnings ('unknown developer')
and an extra System Settings hunt. The route now wraps the profile in
PKCS#7 SignedData (node-forge, SHA-256, full chain embedded) using the
portal's own cert-manager LE certificate mounted read-only into the pod
(PROFILE_SIGN_CERT/KEY). Publicly-trusted chain → Apple shows Verified.
Dev (no env) and any signing failure fall back to unsigned — the
download must never break over the badge. Signature round-trip verified
with openssl smime.
This commit is contained in:
@@ -41,6 +41,12 @@ spec:
|
||||
value: https://booking.dezky.eu
|
||||
- name: NUXT_PUBLIC_MAIL_URL
|
||||
value: https://mail.dezky.eu
|
||||
# Sign Apple .mobileconfig profiles with the portal's own LE cert
|
||||
# (mounted below) so macOS shows Verified instead of "unsigned".
|
||||
- name: PROFILE_SIGN_CERT
|
||||
value: /profile-sign/tls.crt
|
||||
- name: PROFILE_SIGN_KEY
|
||||
value: /profile-sign/tls.key
|
||||
# Cluster-internal address of platform-api for the nitro proxy.
|
||||
- name: PLATFORM_API_INTERNAL_URL
|
||||
value: http://platform-api.dezky-apps.svc.cluster.local:3001
|
||||
@@ -50,6 +56,10 @@ spec:
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: portal-secrets
|
||||
volumeMounts:
|
||||
- name: profile-sign
|
||||
mountPath: /profile-sign
|
||||
readOnly: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
@@ -66,6 +76,12 @@ spec:
|
||||
port: http
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
volumes:
|
||||
# cert-manager-maintained app.dezky.eu cert — reused as the profile
|
||||
# signing identity (any publicly-trusted cert works for PKCS#7).
|
||||
- name: profile-sign
|
||||
secret:
|
||||
secretName: app-dezky-eu-tls
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
Reference in New Issue
Block a user