Izin untuk kunci SSL?


15

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?

Jawaban:


15

Kunci pribadi seharusnya memiliki pembacaan yang sangat terbatas. Pengaturan izin 600dan dimiliki oleh rootharus bekerja. Namun, ada pengaturan izin aman lainnya - Ubuntu menyimpan kunci dalam direktori dengan pemilik rootdan grup ssl-certserta izin 710. Ini berarti bahwa hanya anggota yang ssl-certdapat mengakses file apa pun di direktori itu. Kunci pribadi kemudian memiliki grup ssl-cert, pemilik root, dan izin 640.


2
Saya akan menambahkan, secara spesifik: Ketika menggunakan nginx pada CentOS 7, tidak perlu membuat sertifikat atau kunci pribadi dapat dibaca oleh mereka yang ada di nginxgrup. Server web akan dapat menggunakannya meskipun hanya dapat dibaca oleh root(sebagaimana mestinya).

3

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 rootpengguna 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_certificatehanya mendefinisikan di serverblok saya di nginx.conf. Saya mendapatkan kesalahan seperti [error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshakingketika saya tahu sangat bagus bahwa kunci saya ada di tempat yang tepat. Masalah itu adalah bahwa saya tidak punya ssl_certificatedi httptingkat nginx.conf.

Semoga ini bermanfaat bagi seseorang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.