Puncte:1

Gunicorn/Flask respinge certificatul SSL identic care funcționează bine cu Apache

drapel in

Ce ar face ca un server Gunicorn care rulează o aplicație Flask să raporteze o eroare „certificat de alertă sslv3 necunoscut” în browser, atunci când un server Apache care rulează o aplicație WSGI, folosind exact același certificat pe exact aceeași mașină, nu raportează nicio problemă?

Serviciul Gunicorn găzduiește de pe domeniu https://mysub.example.com:1234 în timp ce serviciul Apache găzduiește de la portul standard 80 la https://mysub.example.com.

Ambele servicii sunt găzduite pe același server fizic și încarcă certificatul SSL wildcard situat la /etc/ssl/certs.

Jurnalele de la Gunicorn/Flask nu oferă prea mult feedback și arată pur și simplu:

[2021-06-23 12:55:34 -0500] [2320785] [DEBUG] Eroare la procesarea cererii SSL.
[2021-06-23 12:55:34 -0500] [2320785] [DEBUG] Solicitare nevalidă de la ip=123.45.678.90: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] certificat de alertă sslv3 necunoscut) (:_263l3.)

Serverul Gunicorn este rulat prin Supervisor cu ca utilizator www-data comanda:

/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 server:app

Între timp, setările SSL pentru configurația Apache sunt:

SSLEngine activat
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/certs/example.com.key
SSLCACertificateFile /etc/ssl/certs/example.com.intermediate.crt
SSLProtocol toate
SSLCipherSuite HIGH:MEDIUM

Am verificat permisiunile /etc/ssl/certsși par a fi corecte. Totul este deținut de utilizator www-data chmoded la 600.

Nu văd niciun motiv pentru care certificatul ar fi servit corect de Apache, dar nu de Gunicorn. Mesajul de eroare sugerează că nu este neapărat ceva ce Gunicorn servește, ci o eroare sau o funcție acceptată cu solicitarea pe care o face browserul. Ce îmi lipsește aici?

Puncte:0
drapel cz

Gunicorn (și practic tot ce face TLS cu exceptia Apache) se așteaptă ca certificatul dvs. TLS să fie concatenat cu certificatele intermediare într-un singur fișier.

Creați fișierul concatenat:

cat /etc/ssl/certs/example.com.crt /etc/ssl/certs/example.com.intermediate.crt > /etc/ssl/certs/example.com.chain.crt

Acum folosiți-l în linia de comandă.

.... --certfile=/etc/ssl/certs/example.com.chain.crt ....
Puncte:0
drapel in

Problema mea a fost în esență un duplicat al această întrebare, iar cauza de bază a fost faptul că certificatele mele de client nu erau actualizate.

Acest răspuns mi-am rezolvat problema, actualizându-mi localul ca-certificate pachet.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.