Kunci pribadi seharusnya memiliki bacaan yang sangat dibatasi. Menyetel izin ke 600 dan dimiliki oleh root harus bekerja. Namun, ada pengaturan izin aman lainnya - Ubuntu menyimpan kunci di direktori dengan pemilik root dan grup ssl-cert dan izin 710 . Artinya hanya anggota ssl-cert dapat mengakses file apa pun di direktori itu. Kunci pribadi kemudian memiliki grup ssl-cert , pemilik root , dan izin 640 .
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 sangat membantu.
Biasanya, nginx dimulai sebagai root pengguna dengan 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 dengan hak istimewa awal atau pengguna yang dialihkan?
Untungnya, nginx menggunakan izin awal untuk membaca sertifikat dan kunci ke dalam memori sebelum berpindah pengguna. Jadi, biasanya, Anda benar-benar dapat membiarkan kunci dengan izin yang sangat terbatas karena dimuat oleh nginx saat masih berjalan sebagai root .
Masalah yang saya hadapi yang membawa saya ke sini adalah saya mendefinisikan ssl_certificate hanya di server saya blok di nginx.conf . Saya mendapatkan error seperti [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking ketika saya tahu sangat baik dan baik bahwa kunci saya ada di tempat yang tepat. Masalah itu adalah saya tidak memiliki ssl_certificate di http tingkat nginx.conf .
Semoga ini bermanfaat bagi seseorang.