Soukromé klíče by měly mít silně omezeno čtení. Nastavení oprávnění na 600
a vlastní root
měl by pracovat. Existují však další nastavení bezpečných oprávnění – Ubuntu ukládá klíče do adresáře s vlastníkem root
a skupina ssl-cert
a oprávnění 710
. To znamená, že pouze členové ssl-cert
může přistupovat ke všem souborům v tomto adresáři. Soukromé klíče pak mají skupinu ssl-cert
, vlastník root
a oprávnění 640
.
Měl jsem problém s nastavením nginx a narazil jsem na tuto otázku. Druhá odpověď zde již přímo odpověděla na otázku, ale myslel jsem si, že by bylo užitečné trochu více informací.
Normálně se nginx spouští jako root
uživatele pomocí init skriptů / systemd. Nicméně nginx má také možnost přepnout se na méně privilegovaného uživatele pro běžné operace. Moje otázka tedy byla, který uživatel se používá k načtení certifikátu/klíče ssl? Počáteční privilegovaný uživatel nebo ten, na kterého je přepnuto?
Naštěstí nginx používá počáteční oprávnění k načtení certifikátu a klíče do paměti před přepnutím uživatele. Normálně tedy opravdu můžete ponechat klíče s velmi omezenými oprávněními, protože je načítá nginx, když stále běží jako root
.
Problém, na který jsem narážel a který mě přivedl sem, byl, že jsem definoval ssl_certificate
pouze v mém server
bloky v nginx.conf
. Zobrazovaly se mi chyby jako [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
když jsem zatraceně dobře věděl, že moje klíče jsou na správném místě. Problém byl v tom, že jsem neměl ssl_certificate
na http
úroveň nginx.conf
.
Doufám, že to někomu pomůže.