liên kết cổng ssl apache với cổng khác với cùng cổng openssl 443


8

Tôi có một máy chủ (cơ sở linux) trong đó tôi đã cài đặt dotcms và nó chạy trên cổng 80 và openssl là trên cổng 443. cả hai đều được bắt đầu trong quá trình chạy. Gần đây tôi đã cài đặt apache trên máy chủ của tôi. và khi tôi bắt đầu apache thì nó bị kẹt vì cổng ssl mặc định trên apache là 443 và apache là 80, cả hai đều đang chạy. Chỉ với nhiệm vụ của mình, tôi chỉ bắt đầu apache mà không có ssl trên cổng 90. nhưng tôi muốn bắt đầu ssl với apache cũng rõ ràng trên các cổng khác nhau. Có thể liên kết ssl apache với cùng openssl không?

Tôi cần dotcms mặc định của mình trong quá trình chạy, tôi không thể dừng nó trong mọi trường hợp, tôi chỉ có thể khởi động lại dịch vụ dotcms của mình nếu bắt đầu apache. nhưng tôi cần dotcms và apache để chạy song song.

xem hình ảnh trên liên kết đó (vì ít tiếng tăm nên tôi không thể tải lên hình ảnh) http://developers89.byethost14.com/images/ssl.png


1
Cung cấp thông tin dưới dạng văn bản thay vì hình ảnh (có thể đọc, tìm kiếm, v.v.).
Karl Richter

Câu trả lời:


17

Có, có thể liên kết Apache với các cổng khác nhau và vẫn sử dụng SSL.

Thay thế các Listenchỉ thị trong cấu hình apache của bạn. Cấu hình nên chứa dòng như

Listen 80
Listen 443

Apache sẽ lắng nghe các cổng được xác định với các tùy chọn cấu hình này. Thay thế chúng và Apache sẽ lắng nghe trên một cổng khác.

Tuy nhiên, bạn vẫn cần cho Apache biết những gì sẽ phục vụ trên các cổng trên. Giả sử bạn muốn Apache bắt đầu nghe trên cổng 8080 (đơn giản) và 4433 (ssl). Sau đó, bạn cần thay thế các chỉ thị Nghe

Listen 8080
Listen 4433

Sau này, xác định hai Virtualhost trên các cổng như thế này:

NameVirtualHost 0.0.0.0:8080
NameVirtualHost 0.0.0.0:4433

<VirtualHost 0.0.0.0:8080>
    ServerName the.server.name
    ServerAlias *
    DocumentRoot /var/www/plain
</VirtualHost>

<VirtualHost 0.0.0.0:4433>
    ServerName the.server.name
    ServerAlias *
    DocumentRoot /var/www/ssl

    SSLEngine On
    SSLCertificateFile /the/certificate/file
    SSLCertificateKeyFile /the/key/file
</VirtualHost>

Nếu bạn không có bất kỳ định nghĩa Virtualhost nào nữa, bạn không phải đưa vào ServerAliaschỉ thị (hoặc ServerName, cho vấn đề đó).

Nếu bạn khởi động lại Apache, nó sẽ lắng nghe trên 8080 cho các kết nối không được mã hóa và trên cổng 4433 cho SSL. Đảm bảo không có bất kỳ định nghĩa Virtualhost cũ nào chứa số cổng sai.


Cảm ơn, cổng đã bật nhưng khi tôi thử mydomain.com:4433 thì nó báo lỗi "lỗi kết nối SSL"Unable to make a secure connection to the server. This may be a problem with the server, or it may be requiring a client authentication certificate that you don't have.
Waqas Ahmed

Khi tôi cố gắng kích hoạt mô-đun ssl bằng lệnh này trên linux a2enmod ssl. nó báo lỗi: * Restarting web server apache2 ... waiting (98)Address already in use: make_sock: could not bind to address [::]:4433và khi tôi vô hiệu hóa mô-đun đó và khởi động lại cổng apache 4433 đang chạy và đối mặt với lỗi được tô sáng trong nhận xét trên
Waqas Ahmed

Dừng máy chủ web apache và đảm bảo không có phiên bản Apache nào vẫn chạy. Kiểm tra xem các cổng có được mở bằng lệnh "netstat -napt | grep 4433" không (không nên có đầu ra). Sau đó chạy a2enmod để kích hoạt mô-đun SSL. Ngoài ra, hãy đảm bảo rằng các lệnh "Nghe" chỉ xuất hiện trong các tệp cấu hình một lần (ví dụ: lệnh "Nghe 4433" thứ hai sẽ gây ra lỗi).
Lacek

Với Apache 2.4.10 tôi có đượcInvalid ServerName "*" use ServerAlias to set multiple server names.
Ortomala Lokni

Tôi đã cập nhật câu trả lời, vì vậy cấu hình cũng sẽ hoạt động với Apache 2.4. Cảm ơn đã chỉ ra điều này.
Lacek
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.