Https’i başka bir https’ye yönlendir


28

Ben bu soru için Googling oldum ve ironik sinir bozucu somut bir cevap bulamıyorum. Bu soruyu geçmişte kendim cevapladım ve şimdi kendi açıklamamı hatırlayamıyorum.

Yılda birkaç kez, biri bunu yapmamı isteyecek. Onları, bunu açıklayan saygın bir yazıya yönlendirmek istiyorum.

URL’yi https://www.example.com/ adresinden almak ve trafiği https://www.example2.com/ adresine yönlendirmek istiyorum .

Bunun teknik olarak mümkün olması gerektiğine inanıyorum, ancak istenmeyen bir durum. Bu yöntemde yanlış olan ne? Tarayıcıları, onları başka bir siteye yönlendirdiğimden beri güvenlik açılır penceresini alacak mı? Birisi bunu açıklayan saygın bazı belgelere link verebilir mi?


4
Durumunuz sinir bozucu olabilir, ama ironik değil;)
Gareth

Yanıtlar:


17

Bunu yapabilirsiniz, her iki sitenin de geçerli bir SSL sertifikası alması gerekir. Bu sayede tarayıcılar bir güvenlik penceresi açmaz. Bununla birlikte, her iki site de aynı sunucuda mevcutsa, her iki etki alanının da farklı IP adreslerinden barındırılması gerekir.

Bir web sunucusu, hangi siteye hizmet vermesi gerektiğini görmek için HTTP isteğindeki "Ana Bilgisayar" başlığına bakar. SSL anlaşması, HTTP isteği gönderilmeden önce gerçekleşir, bu nedenle web sunucusu hangi web sitesinde görüntüleneceğini söyleyemez. Her zaman aynı sertifikayı tarayıcıya gönderir.

Bu soruna geçici bir çözüm bulmak için iki yol var:

  • * .Example.com için bir joker karakter sertifikası alın, böylece tüm alt alanlar aynı sertifikayı paylaşabilir.
  • Her SSL sitesini farklı bir IP adresinde çalıştırın. Bu şekilde, web sunucusu, gelen bağlantıyı alan IP adresini inceleyerek, tarayıcıya hangi SSL sertifikasını gönderebileceğini bilir.

Aynı ağ bağdaştırıcısına birden fazla IP adresi eklemenin mükemmel bir şekilde mümkün olduğunu, IP adresinizde ikinci bir IP adresine ihtiyacınız olduğunu unutmayın.

Güncelleme: Günümüzde, tek bir IP'de birden fazla SSL sitesi çalıştırabilirsiniz. Bunu etkinleştirmek için web sunucunuzda SNI desteğini yapılandırın. Çoğu modern tarayıcı (Windows XP ve Android 2 hariç) bunu destekler.


1
Ayrıca, bir Birleşik İletişim Sertifikası (UCC) altında aynı IP’de birden fazla SSL sitesi barındırabilir, bkz. Help.godaddy.com/article/3908
ManiacZX

Çok anasistem adı / bir IP sertifikası sorunu için başka bir geçici çözüm alternatif bağlantı noktası numaralarını kullanmaktır. Bazı güvenlik duvarları / halka açık erişim noktaları 80/443 trafiğini engellemediğinden bu ideal değildir.
Bryan Agee

5

Bunu hiç denemedim bu yüzden somut deneyimlerden bahsetmiyorum, ama çalışması gerekiyor. Ana bilgisayar adı HTTP üstbilgisi içinde şifreli olduğundan https://www.example.com için geçerli bir SSL sertifikanız olması gerekir, böylece sunucunuz şifresi çözülene kadar yönlendirmeyi bilmez. Bundan sonra normal bir HTTP isteğinde olduğu gibi yönlendirmesi gerekir.


2

Bu neden istenmeyen bir şey olsun ki?

Örnek olarak, Big Bank ve Little Bank, müşterilere mutlu ve güvenli bir his vermek için https'te siteler çalıştırıyor. Big Bank, Little Bank'ı satın aldı. Bir noktada BT çalışanları https://www.littlebank.com adresine https://www.bigbank.com adresine yönlendirme yapacaklar . Bu, https'den https'ye yönlendirmenin meşru bir nedenidir.

Bu iyi çalışması gerekir.


Açıkladığınız bu senaryo iyi olurdu, ancak www.littlebank.com adresine gidip, tarayıcının hala www.littlebank.com adresini gösterecek şekilde maskelenmiş gerçek adresini alırken www.bigbank.com'a yönlendirilirseniz, bu iyi bir şey değildir. şey. Bu, alakasız olduğu güvenli olmayan siteler için oldukça yaygındır, ancak kendinizi, aslında aslında olmadığınız güvenli bir web sitesi olarak gösterme konusundaki tehlikeleri kesinlikle görebilirsiniz.
Charles

1

Sizin için gelebilecek mevcut cevaplarda mevcut olduğunu düşündüğüm bağlantı kesilmesinin, bu şartların herhangi birinde gerçek bir yönlendirmenin (yani: tarayıcı www.example2.com adresine gönderilir) iyi olacağını, ancak bunu gizlerseniz tarayıcı gerçekte sen www.example2.com için göndermiş zaman www.example.com adresinde sivri olduğu stillthinks şekilde, bu size kullanıcıyı taklit çalışıyor olabilir kesin çünkü güvenlik uyarıları göreceksiniz yerdir.

Kısa versiyon normal bir yönlendirme iyi olmalı, adres maskeleme muhtemelen size açıklamak için çok şey bırakacaktır.


Sağol Charles. Bu düşündüğüm "istenmeyen" durum olmalı.
Stefan Lasiewski

0

Görüldüğü gibi, bu sorun taşıma katında çözülebilir. Örnek.com için 192.168.0.1’e işaret eden bir DNS A kaydınız olduğunu varsayalım. Bir tarayıcıya https://example.com yazdığınızda , PC'niz IP 192.168.0.1 olan bir sunucuya bir TCP bağlantısı kurdu, burada bazı işlemler 443 numaralı bağlantı noktasını dinliyor. Peki ya aynı anda sunucu SSL görüşmesini başlatmak gibi bu TCP oturumu üzerinden gönderilen verilerin detaylarına ulaşmak için) 192.168.0.2'ye bir TCP bağlantısı kurar (DNS içeren başka bir sunucu. Buna işaret eden bir example2.com. Bunun gibi bir yapılandırma:

defaults
        log    global
        mode    tcp
        retries 2
        option redispatch
        option tcplog
        option tcpka
        option clitcpka
        option srvtcpka
        timeout connect 5s      
        timeout client  24h     #timeout client->haproxy(frontend)
        timeout server  60m

listen front443 192.168.0.1:443
    server back443 192.168.0.2:443

Ancak example2.com web sunucunuz CN = example2.com ve SAN = example.com gibi bir SSL sertifikası göstermedikçe bu, SSL sertifikası hatasına neden olur.

Veya, kullanıcılar perstective example.com ve example2.com adreslerinden 192.168.0.1'e karar verdiklerinde bir DNS dilimi ufku oluşturabilirsiniz.

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.