Saya mengikuti panduan ini: http://hints.macworld.com/article.php?story=20041129143420344
Inilah definisi host virtual saya
<VirtualHost *:443>
SSLEngine on
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
CacheDisable *
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
DocumentRoot "/Users/me/projects/myproject/public"
ServerName ssl.mydomain.com
ServerAlias *.ssl.mydomain.com
SSLCertificateKeyFile "/private/etc/apache2/certs/webserver.nopass.key"
SSLCertificateFile "/private/etc/apache2/certs/newcert.pem"
SSLCACertificateFile "/private/etc/apache2/certs/demoCA/cacert.pem"
SSLCARevocationPath "/private/etc/apache2/certs/demoCA/crl"
ErrorLog "/Users/me/Desktop/ssl.log"
ProxyPass / https://localhost:3002/
ProxyPassReverse / https://localhost:3002
ProxyPreserveHost on
</VirtualHost>
Dan ketika saya mencoba menghubungkan ke sevre viov browser web, saya mendapatkan kesalahan ini:
[Thu Feb 02 16:50:40 2012] [error] (502)Unknown error: 502: proxy: pass request body failed to 127.0.0.1:3002 (localhost)
[Thu Feb 02 16:50:40 2012] [error] [client 96.11.81.39] proxy: Error during SSL Handshake with remote server returned by /session/new
[Thu Feb 02 16:50:40 2012] [error] proxy: pass request body failed to 127.0.0.1:3002 (localhost) from 96.11.81.39 ()
bagaimana cara saya debug / perbaiki ini?
apache-2.2
ssl
https
virtualhost
NullVoxPopuli
sumber
sumber
SSLProxyCheckPeerName
menggantikanSSLProxyCheckPeerCN
tetapi tidak akan berfungsi kecuali jika Anda menentukan semua arahan.Jangan repot-repot dengan HTTPS antara front-end Anda dan server back-end Anda, ada sedikit gunanya mengaktifkan SSL untuk
localhost
koneksi.Untuk memperjelas, gunakan
ProxyPass / http://localhost:3002/
sebagai gantiProxyPass / https://localhost:3002/
Atau, jika Anda benar-benar ingin menghubungkan proxy terbalik Anda ke server back-end menggunakan SSL juga (sebagian besar berguna ketika server itu tidak di mana proxy reverse Apache Httpd), di samping itu
https://backend-server-address
, gunakanSSLProxy*
arahan untuk mengatur Sertifikat CA, seperti yang didokumentasikan dalam pengantarmod_proxy
dokumentasi . Secara khusus, Anda perlu mengkonfigurasiSSLProxyCACertificateFile
dan memastikan sertifikat server backend dikeluarkan ke nama host yang tepat seperti yang terlihat oleh Apache Httpd (yaitulocalhost
dalam kasus Anda).Jika Anda tidak terhubung ke server back-end Anda menggunakan SSL, mungkin gagal mendeteksi Anda benar-benar menggunakan SSL dan dikonfigurasikan untuk memaksa Anda pergi ke SSL (karenanya pengalihan tidak terbatas). Anda mungkin ingin melihat mekanisme yang sama seperti apa yang Jetty lakukan dengan
forwarded
opsinya (untuk dapat mengatakan back-end itu di belakang proxy). Rails mungkin dapat menafsirkannyaX-Forwarded-Proto
secara default. Dalam hal ini, tambahkan ini ke konfigurasi Apache Anda (di host virtual SSL):Tampaknya ada masalah serupa yang dibahas di sini , misalnya.
sumber
Saya memiliki masalah yang sama (log kesalahan yang sama), kecuali bahwa proxy itu meneruskan lalu lintas https ke host lain.
Karena saya malas dan host berada di jaringan saya sendiri yang terisolasi, arahan ini menyelesaikan masalah:
SSLProxyVerifikasi tidak ada
SSLProxyCheckPeerCN off
sumber
Jika server backend menggunakan sertifikat yang ditandatangani sendiri yang sudah kedaluwarsa, satu opsi lagi diperlukan (jika tidak ada akses ke server backend):
SSLProxyCheckPeerExpire mati
sumber