Kesalahan selama SSL Handshake dengan server jarak jauh


118

Saya telah Apache2(mendengarkan di 443) dan aplikasi web berjalan Tomcat7(mendengarkan di 8443) Ubuntu.

Saya menetapkan apache2 sebagai proxy terbalik sehingga saya mengakses aplikasi web melalui port 443, bukan 8443. Selain itu, saya perlu memiliki komunikasi SSL tidak hanya antara browser dan apache2 tetapi juga antara apache2 dan tomcat7, jadi saya menetapkan SSL pada apache2 dan tomcat7 . Jika saya mencoba mengakses aplikasi web dengan langsung menghubungi tomcat7, semuanya baik-baik saja. Masalahnya adalah ketika saya mencoba mengakses aplikasi web kucing jantan melalui apache2 (proxy terbalik), di browser muncul kesalahan:

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

Apache tidak memeriksa sertifikat yang telah Anda instal di tomcat. Apakah ini sertifikat yang ditandatangani sendiri? Atau apakah itu dibuat oleh CA internal?
MK.

2
Itu ditandatangani sendiri dengan perintah ini: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
user2791481

3
serverfault.com/questions/356678/… Saya rasa inilah yang Anda inginkan: SSLProxyVerify none SSLProxyCheckPeerCN nonaktif
MK.

9
Lebih baik menyetel SSLProxyCACertificateFileke sertifikat CA pribadi Anda, daripada hanya menonaktifkan verifikasi.
ndbroadbent

seperti yang dijelaskan di blog ini Anda dapat mematikan pemeriksaan SSL.
HybrisHelp

Jawaban:


266

Komentar MK itu mengarahkan saya ke arah yang benar.

Dalam kasus Apache 2.4 dan yang lebih baru, ada standar yang berbeda dan arahan baru.

Saya menjalankan Apache 2.4.6, dan saya harus menambahkan arahan berikut untuk membuatnya berfungsi:

SSLProxyEngine on
SSLProxyVerify none 
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off

Jadi ini mematikan proteksi, tapi selama lalu lintasnya lokal (yaitu, 127.0.0.1:8443 ) seharusnya tidak menjadi masalah, bukan?
bgStack15

5
Yah, itu tidak mematikan proteksi karena menyangkut enkripsi. Lalu lintas masih dienkripsi. Ini hanya menonaktifkan pemeriksaan sertifikat untuk memastikannya oleh otoritas tepercaya. Jadi jika Anda mempercayai server, Anda seharusnya tidak memiliki masalah. Tapi ya, untuk lalu lintas lokal menurut saya Anda juga baik-baik saja.
mydoghasworms

1
Terima kasih mydoghasworms. Arahan Anda berfungsi dalam versi Server: Apache / 2.4.6. Jika seseorang perlu mengetahui versi httpd, gunakan ini: httpd -V
JRichardsz

3

Saya memiliki 2 penyiapan server di buruh pelabuhan, proxy balik & server web. Kesalahan ini mulai terjadi di semua situs web saya secara tiba-tiba setelah 1 tahun. Saat menyiapkan sebelumnya, saya membuat sertifikat yang ditandatangani sendiri di server web.

Jadi, saya harus membuat sertifikat SSL lagi dan itu mulai berfungsi ...

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


1

Menghadapi masalah yang sama dengan OP:

  • Tomcat membalas respons saat mengakses langsung melalui SOAP UI
  • Tidak memuat file html
  • Ketika menggunakan properti Apache yang disebutkan oleh jawaban sebelumnya, halaman web muncul tetapi AngularJS tidak bisa mendapatkan respons HTTP

Sertifikat SSL Tomcat telah kedaluwarsa sementara browser menunjukkannya sebagai aman - sertifikat Apache masih jauh dari kedaluwarsa. Memperbarui file KeyStore Tomcat memecahkan masalah.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.