Score:1

Gunicorn/Flask ปฏิเสธใบรับรอง SSL ที่เหมือนกันซึ่งทำงานได้ดีกับ Apache

ธง in

อะไรทำให้เซิร์ฟเวอร์ Gunicorn ที่ใช้งานแอป Flask รายงานข้อผิดพลาด "sslv3 alert certificate ไม่รู้จัก" ในเบราว์เซอร์ เมื่อเซิร์ฟเวอร์ Apache เรียกใช้แอป WSGI โดยใช้ใบรับรองเดียวกันทุกประการในเครื่องเดียวกัน รายงานว่าไม่มีปัญหา

บริการ Gunicorn โฮสต์จากโดเมน https://mysub.example.com:1234 ในขณะที่บริการ Apache โฮสต์จากพอร์ตมาตรฐาน 80 ที่ https://mysub.example.com.

บริการทั้งสองโฮสต์บนเซิร์ฟเวอร์จริงเดียวกัน และโหลดใบรับรอง SSL ที่เป็นสัญลักษณ์แทนซึ่งอยู่ที่ /etc/ssl/ใบรับรอง.

บันทึกจาก Gunicorn/Flask ไม่ได้ให้ข้อเสนอแนะมากนักและแสดงเพียง:

[2021-06-23 12:55:34 -0500] [2320785] [DEBUG] เกิดข้อผิดพลาดในการประมวลผลคำขอ SSL
[2021-06-23 12:55:34 -0500] [2320785] [DEBUG] คำขอไม่ถูกต้องจาก ip=123.45.678.90: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] ไม่รู้จักใบรับรองการแจ้งเตือน sslv3 (_ssl.c:2633)

เซิร์ฟเวอร์ Gunicorn ทำงานผ่าน Supervisor โดยมีผู้ใช้เป็น www-ข้อมูล คำสั่ง:

/usr/local/alphabuyer/.env/bin/gunicorn --certfile=/etc/ssl/certs/example.com.crt --keyfile=/etc/ssl/certs/example.com.key --bind 0.0. 0.0:1234 เซิร์ฟเวอร์:แอป

ในขณะเดียวกัน การตั้งค่า SSL สำหรับ Apache config คือ:

SSLEngine เปิดอยู่
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/certs/example.com.key
SSLCACertificateFile /etc/ssl/certs/example.com.intermediate.crt
SSLProtocol ทั้งหมด
SSLCipherSuite สูง:ปานกลาง

ฉันได้ตรวจสอบสิทธิ์ใน /etc/ssl/ใบรับรองและดูเหมือนจะถูกต้อง ทุกอย่างเป็นของผู้ใช้ www-ข้อมูล ปรับเป็น 600

ฉันไม่เห็นเหตุผลใด ๆ ว่าทำไมใบรับรองจึงแสดงอย่างถูกต้องโดย Apache แต่ไม่ใช่โดย Gunicorn ข้อความแสดงข้อผิดพลาดระบุว่าไม่จำเป็นต้องมีสิ่งใดที่ Gunicorn กำลังให้บริการ แต่เป็นข้อผิดพลาดหรือคุณลักษณะบางอย่างที่สนับสนุนพร้อมกับคำขอที่เบราว์เซอร์สร้างขึ้น ฉันพลาดอะไรไปที่นี่?

Score:0
ธง in

ปัญหาของฉันซ้ำซ้อนกับ คำถามนี้และสาเหตุที่แท้จริงคือใบรับรองไคลเอ็นต์ของฉันล้าสมัย

คำตอบนี้ แก้ไขปัญหาของฉันโดยอัปเดตในเครื่องของฉัน ใบรับรอง ca บรรจุุภัณฑ์.

Score:0
ธง cz

Gunicorn (และเกือบทุกอย่างที่ทำ TLS ยกเว้น Apache) คาดว่าใบรับรอง TLS ของคุณจะเชื่อมกับใบรับรองระดับกลางในไฟล์เดียว

สร้างไฟล์ที่ต่อกัน:

แมว /etc/ssl/certs/example.com.crt /etc/ssl/certs/example.com.intermediate.crt > /etc/ssl/certs/example.com.chain.crt

ตอนนี้ใช้ในบรรทัดคำสั่งของคุณ

.... --certfile=/etc/ssl/certs/example.com.chain.crt ....

โพสต์คำตอบ

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