พร็อกซี: ข้อผิดพลาด AH00898: ข้อผิดพลาดระหว่าง SSL Handshake กับเซิร์ฟเวอร์ระยะไกล


16

ฉันมีเซิร์ฟเวอร์ที่ทำหน้าที่เป็น front-end สำหรับ cPanel mailserver ในเครือข่าย พร็อกซี apache บนเซิร์ฟเวอร์ส่วนหน้าทำงานนาน 152 วันโดยไม่มีข้อผิดพลาดจากนั้นฉันได้รับข้อผิดพลาด 500/502 ทันทีเมื่อใช้เพื่อเข้าถึงเว็บเมล์ไคลเอ็นต์ของเมลเซิร์ฟเวอร์

เซิร์ฟเวอร์หน้าใช้ใบรับรอง SSL ที่ลงนามแล้ว cPanel เซิร์ฟเวอร์กำลังใช้ใบรับรองที่ลงนามด้วยตนเอง นี่คือเอาต์พุตบันทึกข้อผิดพลาดจากเซิร์ฟเวอร์ส่วนหน้าเมื่อเกิดขึ้นครั้งแรก:

[Tue Sep 10 18:22:52.959291 2013] [proxy:error] [pid 19531] (502)Unknown error 502: [client 173.xx.xx.xx:9558] AH01084: pass request body failed to 184.xx.xx.xx:2096 (184.xx.xx.xx), referer: https://domain.com:2096/cpsess12385596/3rdparty/roundcube/?_task=mail&_refresh=1&_mbox=INBOX

[Tue Sep 10 18:22:52.959469 2013] [proxy:error] [pid 19531] [client 173.xx.xx.xx:9558] AH00898: Error during SSL Handshake with remote server returned by /cpsess12385596/3rdparty/roundcube/, referer: https://domain.com:2096/cpsess12385596/3rdparty/roundcube/?_task=mail&_refresh=1&_mbox=INBOX

เซิร์ฟเวอร์หน้าเป็นอินสแตนซ์ EC2 ที่รันApache/2.4.6 (Amazon) การตั้งค่า My VirtualHost สำหรับพร็อกซีบนเซิร์ฟเวอร์นี้เป็นดังนี้:

< VirtualHost *:2096> ServerName domain.com

SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off

SSLCertificateFile /x/x/x/domain.com.crt
SSLCertificateKeyFile /x/x/x/domain.com.key
SSLCACertificateFile /x/x/x/domain.com.cabundle

ProxyPass / https://184.xx.xx.xx:2096/
ProxyPassReverse / https://184.xx.xx.xx:2096/
ProxyPassReverseCookieDomain 184.xx.xx.xx:2096 domain.com
ProxyPassReverseCookiePath / /

SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyHTMLURLMap https://184.xx.xx.xx:2096 /

< /VirtualHost>

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

ข้อเสนอแนะใด ๆ

คำตอบ:


32

มาในปัญหาเดียวกันกับรุ่นเซิร์ฟเวอร์: Apache / 2.4.6

ตามเอกสารที่ [1], " ใน 2.4.5 และใหม่กว่า SSLProxyCheckPeerCN ถูกแทนที่โดย SSLProxyCheckPeerName และการตั้งค่าจะถูกนำมาพิจารณาเมื่อปิด SSLProxyCheckPeerName เท่านั้นในเวลาเดียวกัน "

ดังนั้นการเพิ่มรายการต่อไปนี้จึงมีเคล็ดลับ:

ปิด SSLProxyCheckPeerName

ดังนั้นการกำหนดค่าการทำงานของฉันดูเหมือน ...

    ProxyRequests Off

    SSLEngine On
    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off

    SSLCertificateFile /x/x/keys/server.crt
    SSLCertificateKeyFile /x/x/keys/server.key

[1] http://httpd.apache.org/docs/2.4/mod/mod_ssl.html


1
โปรดทราบว่า "SSLEngine On" ไม่เกี่ยวข้องกับส่วนพร็อกซีของการกำหนดค่า แต่ด้วยการให้บริการการร้องขอนี้ผ่าน SSL / TLS แม้ว่าจะถูกจัดกลุ่มด้วยตัวเลือกการกำหนดค่าพร็อกซี
Perseids

14

หากเซิร์ฟเวอร์เบื้องหลังใช้ใบรับรองที่ลงชื่อด้วยตนเองที่ล้าสมัยจำเป็นต้องมีตัวเลือกเพิ่มเติมอีกหนึ่งตัวเลือก (หากไม่มีการเข้าถึงเซิร์ฟเวอร์เบื้องหลัง):

SSLProxyCheckPeerExpire off

สิ่งนี้ใช้ได้กับฉันในการโยกย้ายพร็อกซีย้อนกลับจาก apache 2.2 ถึง 2.4
Segolas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.