Apache ProxyPass พร้อม SSL


59

ฉันต้องการพร็อกซีคำขอจากไซต์ SSL ผ่านไซต์ที่ไม่ใช่ SSL Apache httpd.conf ของฉันมีลักษณะเช่นนี้:

<VirtualHost 1.2.3.4:80>
    ServerName foo.com
    ProxyPass / https://bar.com/
</VirtualHost>

ดังนั้นเมื่อฉันเยี่ยมชมhttp://foo.comฉันคาดหวังว่า apache จะส่งคำขอไปที่https://bar.comและส่งหน้าที่ได้รับมา

แต่ฉันได้รับข้อผิดพลาด 500 และในบันทึกข้อผิดพลาดฉันเห็น:

[error] proxy: HTTPS: failed to enable ssl support for 4.3.2.1:443 (bar.com)

สันนิษฐานว่าฉันไม่มีคำสั่งที่นี่ มันจะเป็นแบบไหน?

ไม่ต้องกังวลเรื่องความปลอดภัย ฉันเข้าใจความเสี่ยงอย่างเต็มที่


คุณใช้ Apache รุ่นไหน
Sam Halicke

1
"ไม่เป็นไรความหมายของความปลอดภัยฉันเข้าใจความเสี่ยงทั้งหมด" - นี่คือสิ่งที่เทียบเท่ากับ "Hold My Beer"; )
Eric Kigathi

คำตอบ:


70

คุณจะต้องmod_ssl, และเลือกmod_proxy mod_rewriteขึ้นอยู่กับรุ่นการแจกจ่ายและ Apache ของคุณคุณอาจต้องตรวจสอบmod_proxy_connectและmod_proxy_httpโหลดเช่นกัน

คำสั่งสำหรับการเปิดใช้งานการสนับสนุนพร็อกซี SSL อยู่ใน mod_ssl:

<VirtualHost 1.2.3.4:80>
    ServerName foo.com
    SSLProxyEngine On
    SSLProxyCheckPeerCN on
    SSLProxyCheckPeerExpire on
    ProxyPass / https://secure.bar.com
    ProxyPassReverse / https://secure.bar.com
</VirtualHost>

IIRC คุณยังสามารถใช้:

    RewriteRule / https://secure.bar.com [P]    # don't forget to setup SSLProxy* as well

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