_default_ Virtualhost trùng lặp trên cổng 443, lần đầu tiên được ưu tiên


64

Tôi có hai ruby ​​trên rails 3 ứng dụng chạy trên cùng một máy chủ, (ubfox 10.04), cả hai đều có SSL.

Đây là tập tin cấu hình apache của tôi:

<VirtualHost *:80>
ServerName example1.com
DocumentRoot /home/me/example1/production/current/public
</VirtualHost>
<VirtualHost *:443>
ServerName example1.com
DocumentRoot /home/me/example1/production/current/public
SSLEngine on
SSLCertificateFile /home/me/example1/production/shared/example1.crt
SSLCertificateKeyFile /home/me/example1/production/shared/example1.key
SSLCertificateChainFile /home/me/example1/production/shared/gd_bundle.crt
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
</VirtualHost>


<VirtualHost *:80>
ServerName example2.com
DocumentRoot /home/me/example2/production/current/public
</VirtualHost>
<VirtualHost *:443>
ServerName example2.com
DocumentRoot /home/me/example2/production/current/public
SSLEngine on
SSLCertificateFile /home/me/example2/production/shared/iwanto.crt
SSLCertificateKeyFile /home/me/example2/production/shared/iwanto.key
SSLCertificateChainFile /home/me/example2/production/shared/gd_bundle.crt
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
</VirtualHost>

Vấn đề là gì:

Khi khởi động lại máy chủ của tôi, nó cung cấp cho tôi một số đầu ra như thế này:

 * Restarting web server apache2                                   
 [Sun Jun 17 17:57:49 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
 ... waiting [Sun Jun 17 17:57:50 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence

Về việc tại sao vấn đề này lại đến tôi lại nhận được một cái gì đó như thế này:

Bạn không thể sử dụng máy chủ ảo dựa trên tên với SSL vì bắt tay SSL (khi trình duyệt chấp nhận chứng chỉ của máy chủ Web bảo mật) xảy ra trước yêu cầu HTTP, xác định máy chủ ảo dựa trên tên phù hợp. Nếu bạn dự định sử dụng máy chủ ảo dựa trên tên, hãy nhớ rằng chúng chỉ hoạt động với máy chủ Web không bảo mật của bạn.

Nhưng không thể tìm ra cách chạy hai ứng dụng ssl trên cùng một máy chủ.

Ai giúp tôi với?


5
Bạn không có bất kỳ _default_vhost nào trong cấu hình bạn đã cung cấp, vì vậy chúng ở nơi khác. Đầu ra của apache2ctl -Scái gì? (Có, có thể chạy nhiều vhost dựa trên tên SSL trên các chứng chỉ khác nhau, miễn là bạn không có nhu cầu hỗ trợ trình duyệt máy khách chạy Windows XP hoặc bất kỳ trình duyệt nào khác không hỗ trợ TLS SNI. Bạn có cần hỗ trợ Windows không XP?)
Shane Madden

Câu trả lời:


87

Sắp đến rồi!

Thêm phần này vào cổng.conf hoặc http.conf và giữ cấu hình trên của bạn.

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.

    # !important below!
    NameVirtualHost *:443 
    Listen 443
</IfModule>

Nhận xét "#! Quan trọng! Cần được xóa hoặc chuyển sang dòng khác. Nếu không, cảm ơn bạn rất nhiều vì đã diễn giải thông báo lỗi không chính xác này cho tôi.
flickerfly

3
Điều này không còn hoạt động trong Apache 2.4.7
malhal

Cảm ơn bạn. Tôi thấy tôi cần bình luận Nghe 443 vì nó cũng được sử dụng trong các cấu hình conf.d / website.conf cá nhân của tôi
dlink

3

Nó cũng giúp tôi thực hiện "/ usr / sbin / apachectl -S". Lệnh thoát này hiển thị HAI tệp "ssl.conf" trên cùng một đường dẫn. Di chuyển hoặc xóa tập tin người phạm tội và mọi thứ sẽ hoạt động sau.


1

Bạn có thể thêm nó vào cấu hình apache của bạn tại /etc/apache2/ports.conf:

<IfModule mod_ssl.c>                
    Listen 443                      
    <IfModule !mod_authz_core.c>    
        # Apache 2.2                
        NameVirtualHost *:443       
    </IfModule>                     
</IfModule>                         

(Điều này hoạt động trong cả hai: apache 2.2 và 2.4)

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.