Uzak sunucuyla SSL Anlaşması sırasında hata


119

Ben var Apache2(443 numaralı dinleme) ve bir web uygulaması üzerinde çalışan Tomcat7üzerinde (8443 dinleyen) Ubuntu.

Web uygulamasına 8443 yerine 443 numaralı bağlantı noktasından erişebilmek için apache2'yi ters proxy olarak ayarladım. Ayrıca, yalnızca tarayıcı ile apache2 arasında değil, apache2 ile tomcat7 arasında da SSL iletişimine ihtiyacım var, bu nedenle hem apache2 hem de tomcat7'de SSL'yi kurdum . Doğrudan tomcat7 ile iletişime geçerek web uygulamasına erişmeye çalışırsam, her şey yolunda. Sorun şu ki, tomcat'in web uygulamasına apache2 (ters proxy) aracılığıyla erişmeye çalıştığımda, tarayıcıda şu hata görünüyor:

Proxy Error
The proxy server could not handle the request GET /web_app.
Reason: Error during SSL Handshake with remote server

Apache, tomcat'e yüklediğiniz sertifikayı doğrulamaz. Kendinden imzalı bir sertifika mı? Yoksa kurum içi CA tarafından mı yapıldı?
MK.

2
Bu komutla kendi kendine imzalanır: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
user2791481

3
serverfault.com/questions/356678/… İstediğinizin bu olduğunu düşünüyorum: SSLProxyVerify none SSLProxyCheckPeerCN off
MK.

9
SSLProxyCACertificateFileDoğrulamayı kapatmak yerine, özel CA sertifikanızı ayarlamak daha iyidir.
ndbroadbent

bu blogda açıklandığı gibi , SSL kontrollerini kapatabilirsiniz.
HybrisHelp

Yanıtlar:


267

MK'nin yorumu beni doğru yönde gösterdi.

Apache 2.4 ve üzeri durumunda, farklı varsayılanlar ve yeni bir yönerge vardır.

Apache 2.4.6'yı çalıştırıyorum ve çalışmasını sağlamak için aşağıdaki yönergeleri eklemem gerekiyor:

SSLProxyEngine on
SSLProxyVerify none 
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off

Yani bu korumayı kapatır, ancak trafik yerel olduğu sürece (yani, 127.0.0.1:8443 ) daha az sorun olacaktır, değil mi?
bgStack15

5
Pekala, şifreleme söz konusu olduğu için korumayı kapatmaz. Trafik hala şifreli. Bu, güvenilir bir otorite tarafından olduğundan emin olmak için sertifikanın kontrolünü devre dışı bırakır. Yani sunucuya güveniyorsanız, sorun yaşamazsınız. Ama evet, yerel trafik için senin de iyisin.
mydoghasworms

1
Teşekkürler mydoghasworms. Yönergeleriniz Sunucu sürümünde çalışır: Apache / 2.4.6. Birinin httpd sürümünü bilmesi gerekiyorsa, şunu kullanın: httpd -V
JRichardsz

3

Docker, ters proxy ve web sunucusu üzerinde 2 sunucu kurulumum var. Bu hata, tüm web sitelerimde 1 yıl sonra birdenbire olmaya başladı. Daha önce kurarken, web sunucusunda kendinden imzalı bir sertifika oluşturdum.

Bu yüzden tekrar SSL sertifikası oluşturmam gerekti ve çalışmaya başladı ...

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl.key -out ssl.crt


1

OP ile aynı problemle karşılaştık:

  • Tomcat, SOAP UI üzerinden doğrudan erişirken yanıt döndürdü
  • Html dosyaları yüklenmedi
  • Önceki yanıtta bahsedilen Apache özellikleri kullanıldığında, web sayfası belirdi ancak AngularJS HTTP yanıtı alamadı

Bir tarayıcı sertifikanın güvenli olduğunu gösterirken Tomcat SSL sertifikasının süresi doldu - Apache sertifikasının süresi dolmuştu. Tomcat KeyStore dosyasını güncellemek sorunu çözdü.

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.