Score:0

ฉันจะตั้งค่า nginx reverse proxy สำหรับไดรฟ์ Synology ได้อย่างไร

ธง sr

ดร

ฉันลองตั้งค่า nginx เพื่อส่งต่อการเชื่อมต่อ TCP ผ่าน 6690 ไปยัง Synology Drive แต่เมื่อใช้ ฟัง 6690 ssl; Synology Drive Client ไม่พบ NAS และเมื่อใช้งาน ฟัง 6690; (ไม่มี SSL) พบ NAS แต่ใช้ใบรับรองที่ไม่ได้ลงนามแทนใบรับรองที่จัดเก็บด้วย nginx มีแนวคิดอย่างไรในการเปิดใช้งาน SSL และใช้ nginx reverse proxy กับ Synology Drive

บทนำ

ฉันพบโพสต์/คำถามหลายข้อที่อธิบายวิธีตั้งค่าการเชื่อมต่อ SSL กับ Synology NAS โดยใช้ nginx เป็น reverse proxy บนคอมพิวเตอร์เครื่องอื่น ด้วยเหตุนี้ เมื่อเข้าถึง (https://)my-domain.com ฉันสามารถ (แล้ว) เข้าถึงเว็บไซต์การตั้งค่าของ Synology Drive ของฉัน (เช่น DSM ที่เข้าถึงได้ผ่านพอร์ต 5000/5001) อย่างไรก็ตาม ฉันยังต้องการตั้งค่า Synology Drive ให้ใช้ใบรับรอง SSL เดียวกันจาก Let's Encrypt แต่ฉันประสบปัญหาในการตั้งค่า nginx

คำถาม

ดังนั้น ฉันต้องการเพียงการกำหนดค่า Synology Drive และตั้งค่า DNS ของ drive.my-domain.com เพื่อเข้าถึงเราเตอร์ของฉันนอกจากนี้ ฉันได้รับใบรับรอง SSL สำหรับโดเมนนี้และได้ปรับพอร์ต Synology Drive HTTPS เป็น 10003 ในเราเตอร์ของฉัน ฉันส่งต่อพอร์ต 80, 443 และ 6690 ไปยังพร็อกซีย้อนกลับของฉันตามที่แนะนำ ที่นี่. สำหรับ nginx ฉันกำหนดค่า /etc/nginx/conf.d/synology.conf:

รวม /etc/letsencrypt/options-ssl-nginx.conf;

เซิร์ฟเวอร์ {
    ฟัง 80;
    server_name drive.my-domain.com default_server;

    # สำหรับ Let's Encrypt การตรวจสอบ
    ที่ตั้ง ^~ /.well-known {
        อนุญาตทั้งหมด
        รูท /data/letsencrypt/;
    }
}

เซิร์ฟเวอร์ {
    ฟัง 80;
    ฟัง 443 ssl;
    server_name drive.my-domain.com;

    ที่ตั้ง / {
        proxy_set_header โฮสต์ $host;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass https://<IP-OF-SYNOLOGY-NAS>:10003;
        proxy_read_timeout 90;
    }

    ssl_certificate /etc/letsencrypt/live/drive.my-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/drive.my-domain.com/privkey.pem;
    
    รวม /etc/letsencrypt/options-ssl-nginx.conf;
    ถ้า ($scheme != "https") {
        ส่งคืน 301 https://$host$request_uri;
    }
}

นอกจากนี้ ฉันได้เพิ่มบรรทัดต่อไปนี้ใน /etc/nginx/nginx.conf:

...

รวม /etc/nginx/fallthrough.conf;

และ /etc/nginx/fallthrough.conf มีดังต่อไปนี้:

ลำธาร {

    synology_drive ต้นน้ำ {
         เซิร์ฟเวอร์ <IP-OF-SYNOLOGY-NAS>:6690;
    }

    เซิร์ฟเวอร์ {
        ฟัง 6690 ssl;
        proxy_pass synology_drive;
        
        ssl_certificate /etc/letsencrypt/live/drive.my-domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/drive.my-domain.com/privkey.pem;
    }
}

อย่างไรก็ตาม เมื่อพยายามตั้งค่า Synology Drive Client ไม่สามารถเชื่อมต่อ/ค้นหา Synology NAS ได้ เมื่อเปลี่ยน /etc/nginx/fallthrough.conf เพื่อไม่ใช้ SSL เช่น:

ลำธาร {

    synology_drive ต้นน้ำ {
         เซิร์ฟเวอร์ <IP-OF-SYNOLOGY-NAS>:6690;
    }

    เซิร์ฟเวอร์ {
        ฟัง 6690;
        proxy_pass synology_drive;
    }
}

พบ Synology NAS แต่ใช้ใบรับรองที่ลงนามเองซึ่งจัดเก็บไว้บน NAS แทนใบรับรองจาก Let's Encrypt ที่จัดเก็บไว้ในคอมพิวเตอร์พร็อกซีย้อนกลับ

ไม่มีใครรู้ว่าฉันเป็นอะไรหรืออาจทำอะไรผิดที่นี่?

Score:1
ธง us

เดอะ ลำธาร โมดูลเป็นโมดูลพร็อกซีเลเยอร์ 4 นั่นคือจะส่งต่อแพ็กเก็ต TCP ระหว่างไคลเอนต์ที่เชื่อมต่อและพร็อกซีเซิร์ฟเวอร์เท่านั้น

เมื่อ TLS เกิดขึ้นในระดับที่สูงขึ้น nginx จะไม่มีส่วนร่วมในการเข้ารหัส SSL ฉันประหลาดใจจริง ๆ ที่ nginx ไม่มีข้อผิดพลาดใน ssl_certificate คำสั่งที่อยู่ในการกำหนดค่าของคุณ

ตัวเลือกเดียวของคุณคือคัดลอกคีย์ส่วนตัวและใบรับรองจาก nginx ไปยังอุปกรณ์ Synology เนื่องจากเป็นเอนทิตีที่ยุติการเชื่อมต่อ TLS ในกรณีนี้

sr flag
ก่อนตั้งค่า nginx เป็น reverse proxy ฉันได้คัดลอกคีย์ไปยัง Synology เป็นประจำอยู่แล้ว แต่การทำเช่นนั้นดูไม่มั่นคงและไม่ใช่วิธีที่ต้องการ อืม... ฉันว่าฉันคงต้องติดไว้ก่อน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา