Làm cách nào để vô hiệu hóa quyền truy cập https vào các máy chủ ảo cụ thể?


10

Được rồi, vì vậy tôi có một máy chủ Apache được thiết lập với các chỉ thị sau:

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>

Vì vậy example1.com có ​​hỗ trợ SSL và có thể được truy cập qua http: // example1.com hoặc https: // example1.com. Tuy nhiên, điều này có tác dụng phụ ngoài ý muốn là hiển thị https: // example1.com khi tôi truy cập https: // example2.com trong trình duyệt của mình. Những gì tôi muốn làm về cơ bản là vô hiệu hóa https: // example2.com hoặc chuyển hướng nó tới http: // example2.com để tôi không nhận được cảnh báo và trang web sai khi tôi truy cập nó.

Câu trả lời:


7

Bạn sẽ không thể tránh nhận được cảnh báo, trừ khi example1 và example2 ở các địa chỉ IP khác nhau hoặc bạn nhận được chứng chỉ SSL bao gồm cả hai tên - một trang lỗi hoặc chuyển hướng không thể xảy ra cho đến khi kết nối SSL được thiết lập.

Điều đó đang được nói, một cái gì đó dọc theo những dòng này sẽ hoạt động:

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>

Cảm ơn! Tôi nghĩ rằng tôi đã thiếu chỉ thị NameVirtualhost và Apache nghĩ rằng tôi đang cố gắng làm cho hai máy chủ ảo xung đột lẫn nhau. Thật thú vị, Chrome sẽ không đưa ra cảnh báo về chuyển hướng này ... Nhưng tôi không lo lắng về điều đó, chỉ không muốn trang web SSL của tôi hiển thị dưới các tên miền khác.
nearengine

Không giống với việc thêm các certs không hợp lệ để dự phòng cho không ssl? Tôi đoán bạn có thể trực tiếp nối _fake vào tên của các certs trong chỉ thị vhost của bạn.
m3nda

0

Tôi không nghĩ bạn nên đặt: 443 trên ServerName example1.com:443

chúng nên được cấu hình đúng

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.