Điều gì sẽ khiến máy chủ Gunicorn chạy ứng dụng Flask báo cáo lỗi "không xác định chứng chỉ cảnh báo sslv3" trong trình duyệt, khi máy chủ Apache chạy ứng dụng WSGI, sử dụng cùng một chứng chỉ trên cùng một máy, báo cáo không có sự cố?
Dịch vụ Gunicorn đang lưu trữ từ tên miền https://mysub.example.com:1234 trong khi dịch vụ Apache lưu trữ từ cổng tiêu chuẩn 80 tại https://mysub.example.com.
Cả hai dịch vụ đều được lưu trữ trên cùng một máy chủ vật lý và tải chứng chỉ SSL ký tự đại diện tại /etc/ssl/certs
.
Nhật ký từ Gunicorn/Flask không cung cấp nhiều phản hồi và chỉ hiển thị:
[23-06-2021 12:55:34 -0500] [2320785] [DEBUG] Lỗi xử lý yêu cầu SSL.
[23/06/2021 12:55:34 -0500] [2320785] [DEBUG] Yêu cầu không hợp lệ từ ip=123.45.678.90: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] chứng chỉ cảnh báo sslv3 không xác định (_ssl.c:2633)
Máy chủ Gunicorn được điều hành thông qua Người giám sát với tư cách là người dùng dữ liệu www
lệnh:
/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 máy chủ: ứng dụng
Trong khi đó, cài đặt SSL cho cấu hình Apache là:
Công cụ SSL Bật
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/certs/example.com.key
SSLCACertificateFile /etc/ssl/certs/example.com.intermediate.crt
Giao thức SSL tất cả
SSLCipherSuite CAO:TRUNG BÌNH
Tôi đã kiểm tra các quyền trong /etc/ssl/certs
, và chúng có vẻ đúng. Mọi thứ thuộc sở hữu của người dùng dữ liệu www
chmod thành 600.
Tôi không thấy bất kỳ lý do nào khiến chứng chỉ sẽ được cung cấp chính xác bởi Apache chứ không phải bởi Gunicorn. Thông báo lỗi cho thấy không nhất thiết phải có bất cứ thứ gì Gunicorn đang phục vụ, mà là một lỗi hoặc một số tính năng được hỗ trợ với yêu cầu mà trình duyệt đang thực hiện. Tôi đang thiếu gì ở đây?