Https web sunucusu hatasıyla ilgili sorun mu var - SSL El Sıkışma başarısız oldu


9

Bu kılavuzu takip ettim: http://hints.macworld.com/article.php?story=20041129143420344

İşte sanal ana bilgisayar tanımım

<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>

Ve sevre viov web tarayıcısına bağlanmaya çalıştığımda, bu hatayı alıyorum:

[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 ()

bunu nasıl hata ayıklayabilirim / düzeltebilirim?

Yanıtlar:


12

Vbartoni'nin cevabına eklemek için, Apache 2.4 ve üstü sürümlerden farklı varsayılanlar ve yeni bir direktif var gibi görünüyor.

Apache 2.4.6 kullanıyorum ve çalışmasını sağlamak için aşağıdaki yönergeleri eklemek zorunda kaldım:

SSLProxyEngine on
SSLProxyVerify none 
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

1
Bu iş yapar - sadece tüm bu direktiflerle şikayet etmeyecektir.
Michael Böckling

@ MichaelBöckling Beni ayakta tutan teşekkürler. Özellikle belgelerin SSLProxyCheckPeerNameyerini SSLProxyCheckPeerCNaldığını belirtmek isterim, ancak tüm yönergeleri belirtmedikçe işe yaramaz .
15'te ikiye katlandı

3

Ön uç ile arka uç sunucunuz arasındaki HTTPS ile uğraşmayın, bir localhostbağlantı için SSL'yi etkinleştirmenin pek bir anlamı yoktur .

, Kullanımını netleştirmek için ProxyPass / http://localhost:3002/yerineProxyPass / https://localhost:3002/


Alternatif olarak, eğer gerçekten ilaveten, (Apache Httpd ters vekil olduğu bu sunucu olmadığında çoğunlukla faydalıdır) yanı SSL kullanarak arka uç sunucusuna ters proxy bağlamak istiyorsanız https://backend-server-address, kullanmak SSLProxy*kurmak direktifleri CA sertifikaları, dokümantasyonun giriş bölümünde mod_proxybelgelendiği gibi . Özellikle, SSLProxyCACertificateFilearka uç sunucusu sertifikasının Apache Httpd tarafından görüldüğü gibi doğru ana bilgisayar adına (yani localhostsizin durumunuzda) verildiğinden emin olmanız ve yapılandırmanız gerekir .


Arka uç sunucunuza SSL kullanarak bağlanmıyorsanız, aslında SSL kullandığınızı algılayamayabilir ve sizi SSL'ye gitmeye zorlayacak şekilde yapılandırılmış olabilirsiniz (bu nedenle sonsuz yönlendirmeler). Jetty'nin forwardedseçeneği ile yaptıklarına benzer mekanizmalara bakmak isteyebilirsiniz (arka uca bir proxy'nin arkasında olduğunu söyleyebilmek için). Raylar X-Forwarded-Protovarsayılan olarak yorumlayabilir . Bu durumda, bunu Apache yapılandırmanıza ekleyin (SSL sanal ana bilgisayarında):

RequestHeader set X-Forwarded-Proto 'https'

Örneğin, burada tartışılan benzer bir sorun var gibi görünüyor .


SSLProxy bu bağlantıda yalnızca bir kez belirtilir. Nasıl kullanılacağına dair bir örnek yok. İstek başlığını X-Forwarded-Proto 'https' olarak ayarlanacak şekilde değiştirdim ... ama yine de çalışmıyor / aynı hatayı alıyorum. Localhost'a gitmek : 3002 de aynı hatayı veriyor
NullVoxPopuli

Https'ye localhost ile bağlanmak için geçerli nedenler vardır: HTTPS arka ucunda example socket.io. Karışık içerikli hatalarla olacaktır.
Florestan06

3

Proxy başka bir ana bilgisayara https trafiği iletmek dışında benzer bir sorun (aynı hata günlükleri) vardı.
Tembel olduğum ve ana bilgisayarlar kendi yalıtılmış

ağımda bulunduğundan, bu yönergeler sorunu çözdü: SSLProxyVerify hiçbiri
SSLProxyCheckPeerCN kapalı


1

Arka uç sunucusu güncel olmayan kendinden imzalı sertifika kullanıyorsa, bir seçenek daha gerekir (arka uç sunucusuna erişim yoksa):

SSLProxyCheckPeerExpire kapalı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.