Bagaimana cara menonaktifkan akses https ke host virtual tertentu?


10

Baiklah, jadi saya memiliki server Apache yang diatur dengan arahan berikut:

NameVirtualHost *:80

<VirtualHost *:80>  
ServerName example1.com  
ServerAlias www.example1.com  
DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
ServerName example2.com
ServerAlias *.example2.com
DocumentRoot /var/www/example2
</VirtualHost>

<VirtualHost example1.com:443>
DocumentRoot /var/www/html
ServerName example1.com:443
SSLEngine on
...
</VirtualHosts>

Jadi example1.com memiliki dukungan SSL, dan dapat diakses baik melalui http: // example1.com atau https: // example1.com. Namun, ini memiliki efek samping yang tidak diinginkan dengan menampilkan https: // example1.com ketika saya mengunjungi https: // example2.com di browser saya. Apa yang ingin saya lakukan pada dasarnya adalah menonaktifkan https: // example2.com entah bagaimana atau mengarahkan kembali ke http: // example2.com jadi saya tidak mendapatkan peringatan dan situs yang salah ketika saya mengunjunginya.

Jawaban:


7

Anda tidak akan dapat menghindari mendapat peringatan, kecuali example1 dan example2 berada pada alamat IP yang berbeda, atau Anda mendapatkan sertifikat SSL yang mencakup kedua nama - halaman kesalahan atau pengalihan tidak dapat terjadi sampai setelah koneksi SSL dibuat.

Yang sedang berkata, sesuatu di sepanjang garis ini harus bekerja:

NameVirtualHost *:443
<VirtualHost *:443>
  ServerName example1.com
  SSLEngine on
  #...
</VirtualHost>
<VirtualHost *:443>
  ServerName example2.com
  SSLEngine on
  # same certificate config here as on example1, unless you're wanting to use TLS SNI
  # then, let's redirect the user to non-SSL
  Redirect permanent / http://example2.com/
</VirtualHost>

Terima kasih! Saya pikir saya melewatkan direktif NameVirtualHost dan Apache berpikir saya mencoba membuat dua host virtual saling bertentangan. Menariknya, Chrome tidak memberikan peringatan tentang pengalihan ini ... Tapi saya tidak khawatir tentang itu, hanya saja tidak ingin situs SSL saya muncul di bawah nama domain lain.
nearengine

Tidak sama dengan menambahkan sertifikat yang tidak valid ke fallback ke non-ssl? Saya kira Anda dapat langsung menambahkan _fake ke nama sertifikat pada arahan vhost Anda.
m3nda

0

saya tidak berpikir Anda harus meletakkan: 443 di ServerName example1.com:443

ini harus dikonfigurasi dengan benar

<VirtualHost example1.com:443> //change example1.com to ip address is a good habit
DocumentRoot /var/www/html
ServerName example1.com
SSLEngine on
...
</VirtualHosts>

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.