ฉันกำลังพยายามตั้งค่าการเชื่อมต่อที่ปลอดภัย (https) ใน nginx
แต่ฉันกังวลเกี่ยวกับการอนุญาตของรหัสส่วนตัวซึ่งไม่ได้กล่าวถึงในบทช่วยสอน
ฉันควรเปลี่ยนพวกเขาหรือไม่ คืออะไร?
ฉันกำลังพยายามตั้งค่าการเชื่อมต่อที่ปลอดภัย (https) ใน nginx
แต่ฉันกังวลเกี่ยวกับการอนุญาตของรหัสส่วนตัวซึ่งไม่ได้กล่าวถึงในบทช่วยสอน
ฉันควรเปลี่ยนพวกเขาหรือไม่ คืออะไร?
คำตอบ:
คีย์ส่วนตัวควรอ่านอย่าง จำกัด การตั้งค่าการอนุญาต600
และการเป็นเจ้าของroot
ควรทำงาน อย่างไรก็ตามมีการตั้งค่าการอนุญาตที่ปลอดภัยอื่น ๆ - อูบันตูจัดเก็บคีย์ไว้ในไดเรกทอรีพร้อมเจ้าของroot
และกลุ่มssl-cert
และสิทธิ์710
ต่างๆ ซึ่งหมายความว่าเฉพาะสมาชิกของssl-cert
สามารถเข้าถึงไฟล์ใด ๆ ในไดเรกทอรีนั้น คีย์ส่วนตัวแล้วมีกลุ่มssl-cert
เจ้าของและสิทธิ์root
640
ฉันมีปัญหาในการติดตั้ง 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
ในระดับของhttp
nginx.conf
หวังว่านี่จะเป็นประโยชน์สำหรับใครบางคน
nginx
กลุ่มสามารถอ่านได้ เว็บเซิร์ฟเวอร์จะสามารถใช้งานได้แม้ว่าพวกเขาจะสามารถอ่านได้โดยroot
(เท่าที่ควร)