Saya mencoba mengatur koneksi aman (https) di nginx.
Tapi saya agak khawatir tentang izin kunci pribadi, yang tidak disebutkan dalam tutorial apa pun.
Haruskah saya mengubahnya? Untuk apa?
Kunci pribadi seharusnya memiliki pembacaan yang sangat terbatas. Pengaturan izin 600
dan dimiliki oleh root
harus bekerja. Namun, ada pengaturan izin aman lainnya - Ubuntu menyimpan kunci dalam direktori dengan pemilik root
dan grup ssl-cert
serta izin 710
. Ini berarti bahwa hanya anggota yang ssl-cert
dapat mengakses file apa pun di direktori itu. Kunci pribadi kemudian memiliki grup ssl-cert
, pemilik root
, dan izin 640
.
nginx
grup. Server web akan dapat menggunakannya meskipun hanya dapat dibaca olehroot
(sebagaimana mestinya).Saya mengalami masalah saat menyiapkan nginx dan menemukan pertanyaan ini. Jawaban lain di sini sudah langsung menjawab pertanyaan, tetapi saya pikir sedikit lebih banyak informasi akan membantu.
Biasanya, nginx dimulai sebagai
root
pengguna oleh skrip init / systemd. Namun, nginx juga memiliki kemampuan untuk beralih ke pengguna yang kurang beruntung untuk operasi normal. Jadi pertanyaan saya adalah pengguna mana yang digunakan untuk memuat sertifikat / kunci ssl? Pengguna awal istimewa atau yang beralih ke?Untungnya, nginx menggunakan izin awal untuk membaca sertifikat dan kunci ke memori sebelum beralih pengguna. Jadi, biasanya, Anda benar-benar dapat meninggalkan kunci dengan izin yang sangat terbatas karena dimuat oleh nginx ketika masih berjalan sebagai
root
.Masalah yang saya hadapi saat mendarat di sini adalah bahwa saya
ssl_certificate
hanya mendefinisikan diserver
blok saya dinginx.conf
. Saya mendapatkan kesalahan seperti[error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
ketika saya tahu sangat bagus bahwa kunci saya ada di tempat yang tepat. Masalah itu adalah bahwa saya tidak punyassl_certificate
dihttp
tingkatnginx.conf
.Semoga ini bermanfaat bagi seseorang.
sumber