Un certificato SSL è (strettamente visto) non una configurazione ma un file di asset.
Il modo in cui fornisci questa risorsa dipende dal tuo modo di hosting. Ma ecco alcune opzioni:
Un modo semplice è integrare la crittografia e utilizzare certbot che gestisce il download dei certificati in modo sicuro e automatico. letsencrypt ha alcune integrazioni per alcune lingue (ad esempio, ha diversi client che possono essere integrati in un'app).
È possibile utilizzare un servizio di bilanciamento del carico e terminare lo ssl con il servizio di bilanciamento del carico. In questo caso la tua app non ha bisogno di sapere nulla sul certificato.
Kubernetes fornisce segreti in grado di archiviare i certificati in modo sicuro e di copiare tali file sulla distribuzione in un pod (semplificata: un pod è un pacchetto che avvolge in modo sottile un contenitore finestra mobile compresa l'app).
Kubernetes può anche utilizzare Ingress come LoadBalancer che termina lo ssl.
Un'altra opzione è utilizzare il Vault di hashicorp. Questo è un servizio che gestisce e distribuisce segreti.
Sicuramente, ci sono più opzioni e questi sono solo suggerimenti. Ma l'archiviazione e la distribuzione sicura dei certificati SSL non è un compito facile. Spero di aver dato qualche buon suggerimento.
Ho 0 esperienza con l'app 12-factor (un nome interessante però, inizialmente l'ho letto come autenticazione a 12 fattori). Indipendentemente dal fatto che tu abbia lavorato su alcuni plugin di terze parti che supportano riferimenti a risorse di server reali all'interno della sua configurazione. In particolare, un numero di serie del certificato SSL, o forse l'identificazione digitale. Si tratta di identificatori univoci che è possibile inserire facilmente in una variabile di ambiente a condizione che l'applicazione o il servizio sia correlata al certificato SSL effettivo in archivio a cui si fa riferimento. La gestione delle chiavi è sempre una sfida se non si può/non si può usare un HSM: D – rdev5