สิทธิ์สำหรับรหัส SSL หรือไม่


15

ฉันกำลังพยายามตั้งค่าการเชื่อมต่อที่ปลอดภัย (https) ใน nginx

แต่ฉันกังวลเกี่ยวกับการอนุญาตของรหัสส่วนตัวซึ่งไม่ได้กล่าวถึงในบทช่วยสอน

ฉันควรเปลี่ยนพวกเขาหรือไม่ คืออะไร?

คำตอบ:


16

คีย์ส่วนตัวควรอ่านอย่าง จำกัด การตั้งค่าการอนุญาต600และการเป็นเจ้าของrootควรทำงาน อย่างไรก็ตามมีการตั้งค่าการอนุญาตที่ปลอดภัยอื่น ๆ - อูบันตูจัดเก็บคีย์ไว้ในไดเรกทอรีพร้อมเจ้าของrootและกลุ่มssl-certและสิทธิ์710ต่างๆ ซึ่งหมายความว่าเฉพาะสมาชิกของssl-certสามารถเข้าถึงไฟล์ใด ๆ ในไดเรกทอรีนั้น คีย์ส่วนตัวแล้วมีกลุ่มssl-certเจ้าของและสิทธิ์root640


2
ฉันจะเพิ่มความเฉพาะเจาะจง: เมื่อใช้ nginx บน CentOS 7 ไม่จำเป็นต้องสร้างใบรับรองหรือคีย์ส่วนตัวที่ผู้อ่านในnginxกลุ่มสามารถอ่านได้ เว็บเซิร์ฟเวอร์จะสามารถใช้งานได้แม้ว่าพวกเขาจะสามารถอ่านได้โดยroot(เท่าที่ควร)
Simon South

3

ฉันมีปัญหาในการติดตั้ง nginx และพบกับคำถามนี้ คำตอบอื่น ๆ ที่นี่ตอบคำถามแล้ว แต่ฉันคิดว่าข้อมูลเพิ่มเติมเล็กน้อยจะเป็นประโยชน์

โดยปกติแล้ว nginx จะเริ่มต้นเป็นrootผู้ใช้โดย init สคริปต์ / systemd อย่างไรก็ตาม nginx ยังมีความสามารถในการสลับไปยังผู้ใช้ที่มีสิทธิ์น้อยกว่าสำหรับการดำเนินงานปกติ ดังนั้นคำถามของฉันคือผู้ใช้รายใดที่ใช้โหลด ssl certificate / key? ผู้ใช้ที่มีสิทธิ์เริ่มต้นหรือผู้ใช้ที่เปลี่ยนเป็น?

โชคดีที่ nginx ใช้สิทธิ์เริ่มต้นในการอ่านใบรับรองและคีย์ในหน่วยความจำก่อนที่จะสลับผู้ใช้ ดังนั้นโดยปกติคุณสามารถปล่อยให้คีย์นั้นมีการ จำกัด สิทธิ์อย่างมากเนื่องจากมันถูกโหลดโดย nginx เมื่อมันยังทำงานrootอยู่


ปัญหาที่ฉันพบคือที่ดินที่ฉันอยู่ที่นี่คือฉันได้กำหนดไว้ssl_certificateในserverบล็อกของฉันnginx.confเท่านั้น ฉันได้รับข้อผิดพลาดเหมือน[error] 18606#18606: *311 no "ssl_certificate" is defined in server listening on SSL port while SSL handshakingเมื่อฉันรู้ว่ามันดีและกุญแจของฉันอยู่ในที่ที่ถูกต้อง ปัญหาที่คือการที่ฉันไม่ได้มีssl_certificateในระดับของhttpnginx.conf

หวังว่านี่จะเป็นประโยชน์สำหรับใครบางคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.