ssl_error_rx_record_too_long và SSL SSL [đã đóng]


242

Tôi đã có một khách hàng đang cố truy cập vào một trong các trang web của tôi và họ liên tục gặp lỗi này> ssl_error_rx_record_too_long

Họ đang gặp lỗi này trên tất cả các trình duyệt, tất cả các nền tảng. Tôi không thể tái tạo vấn đề gì cả.

Máy chủ của tôi và bản thân tôi được đặt tại Hoa Kỳ, khách hàng ở Ấn Độ.

Tôi đã giải quyết vấn đề này và nguồn chính dường như là cổng SSL đang nói bằng HTTP. Tôi đã kiểm tra máy chủ của mình và điều này không xảy ra. Tôi đã thử giải pháp được đề cập ở đây , nhưng khách hàng đã tuyên bố rằng nó không khắc phục được vấn đề.

Bất cứ ai có thể cho tôi biết làm thế nào tôi có thể sửa chữa điều này, hoặc làm thế nào tôi có thể tái tạo điều này ???

GIẢI PHÁP

Hóa ra khách hàng đã có một proxy cục bộ bị định cấu hình sai!

Hy vọng rằng sẽ giúp bất cứ ai tìm thấy câu hỏi này cố gắng gỡ lỗi nó trong tương lai.


Tôi nghĩ rằng nó cũng có thể được gây ra bởi một proxy được định cấu hình sai ở phía của họ. Bất kỳ suy nghĩ về điều đó là tốt?
Subimage

34
Vì nó đã bị đóng vì lạc đề nhưng dường như là một câu hỏi rất có giá trị (xếp hạng rất cao trong Google cho thông báo lỗi này) có lẽ nên chuyển sang ServerFault? Đó là một câu hỏi 6 năm tuổi nên có lẽ SF không có sẵn khi câu hỏi được hỏi ban đầu ...
kdm bồ

12
Đây là kết quả tìm kiếm trên web đầu tiên cho SSL_ERROR_RX_RECORD_TOO_LONG. Nó có 32 mục yêu thích, 193 câu trả lời, nhiều câu trả lời được đánh giá cao ... và nó đóng như một chủ đề ngoài một người hiểu rõ hơn những người còn lại rằng câu hỏi này không có quyền tồn tại.
Vladimir Kornea

2
Tôi có thể gỡ lỗi các vấn đề chứng chỉ của mình khi tạo thông báo này vớiopenssl s_client -connect my-domain.tld:443
azmeuk

2
@Subimage "GIẢI PHÁP Hóa ra khách hàng có một proxy cục bộ bị định cấu hình sai!" Hãy giải thích điều này có nghĩa là gì. Bạn có thể cụ thể hơn; thật bực bội khi biết bạn có giải pháp nhưng bạn không đánh vần rõ ràng
ptrcao

Câu trả lời:


169

Các liên kết được đề cập bởi Subimage đã đúng về tiền cho tôi. Nó đề nghị thay đổi thẻ máy chủ ảo, tức là từ<VirtualHost myserver.example.com:443> để<VirtualHost _default_:443>

Mã lỗi: ssl_error_rx_record_too_long

Điều này thường có nghĩa là việc triển khai SSL trên máy chủ của bạn không chính xác. Lỗi thường do sự cố phía máy chủ mà quản trị viên máy chủ sẽ cần điều tra.

Dưới đây là một số điều chúng tôi khuyên bạn nên thử.

  • Đảm bảo rằng cổng 443 được mở và bật trên máy chủ của bạn. Đây là cổng tiêu chuẩn cho truyền thông https.

  • Nếu SSL đang sử dụng cổng không chuẩn thì đôi khi FireFox 3 có thể gặp lỗi này. Đảm bảo SSL đang chạy trên cổng 443.

  • Nếu sử dụng Apache2, hãy kiểm tra xem bạn có đang sử dụng cổng 443 cho SSL không. Điều này có thể được thực hiện bằng cách thiết lập tệp port.conf như sau

    Listen 80
    Listen 443 https
    
  • Đảm bảo bạn không có nhiều chứng chỉ SSL chia sẻ cùng một IP. Vui lòng đảm bảo rằng tất cả các chứng chỉ SSL sử dụng IP chuyên dụng của riêng họ.

  • Nếu sử dụng Apache2, hãy kiểm tra cấu hình vhost của bạn. Một số người dùng đã báo cáo thay đổi <VirtualHost>để _default_giải quyết lỗi.

Điều đó đã khắc phục vấn đề của tôi. Thật hiếm khi tôi google một thông báo lỗi và nhận được cú đánh đầu tiên với câu trả lời đúng! :-)

Ngoài những điều trên , đây là một số giải pháp khác mà những người khác đã tìm thấy đang gây ra vấn đề:

  • Đảm bảo rằng chứng chỉ SSL của bạn chưa hết hạn

  • Hãy thử chỉ định Mật mã:

    SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3


5
Chỉ cần thêm vào danh sách những thứ cần kiểm tra, sau khi kiểm tra tất cả các mục này, tôi đã phải trao đổi <Virtualhost mặc định : 443> của mình thành <Virtualhost fqdn: 443> để cuối cùng nó hoạt động.
JimP

2
Tôi gặp vấn đề này trên máy chủ whm / Cpanel. Tôi chỉ cần cài đặt lại ssl để khắc phục vấn đề.
Mike D

15
_default_:443đã làm cho tôi. Không tôi có thể đi ngủ!
Garfonzo

Một điều khác để kiểm tra, bạn có thể có SSL theo mặc định, nhưng nếu bạn có một virthost mới với vấn đề này, bạn có thể chưa cung cấp cấu hình SSL ngay cả khi cổng được mở. (aka, ôi, tôi đã bỏ lỡ một bước.)
Josiah

1
Ngoài ra, hãy kiểm tra và chắc chắn rằng bạn không có các tệp conf Virtualhost khác đang nghe cổng 443 với các cài đặt không phù hợp. Một tập tin conf xấu có thể làm giảm tất cả các trang web SSL.
Nỗi nhớ.io

120

Giải pháp cho tôi là default-sslkhông được kích hoạt trong apache 2 .... chỉ cần đặtSSLEngine On

Tôi đã phải thực hiện a2ensite default-sslvà mọi thứ đã làm việc.


4
Tôi đã sử dụng a2enmod sslnhưng quên a2ensite default-ssltừ conf vhost mặc định. Cảm ơn bạn!
m3nda

Họ thực sự nên default-sslkích hoạt đã có trong Ubuntu.
BadHorsie

32

Trong trường hợp của tôi, tôi đã phải thay đổi <Virtualhost *> thành <Virtualhost *: 80> (là mặc định trên Ubuntu). Mặt khác, cổng 443 không sử dụng SSL và đang gửi HTML đơn giản trở lại trình duyệt.

Bạn có thể kiểm tra xem đây có phải là trường hợp của bạn khá dễ dàng không: chỉ cần kết nối với máy chủ của bạn http://www.example.com:443 . Nếu bạn thấy HTML đơn giản, Apache của bạn hoàn toàn không sử dụng SSL trên cổng 443, rất có thể là do cấu hình sai của Virtualhost.

Chúc mừng!


1
localhost: 443 tải html plian, phải làm sao?
niran

@niran Tôi đoán nó phụ thuộc vào mặc định hệ điều hành của bạn cho <VirtualHost>chỉ thị. Cố gắng tìm ra mặc định và điều chỉnh nó cho phù hợp và đảm bảo SSL được bật trên Virtualhost đó.
alexm

1
Có vấn đề này với một vhost vì 000-default.conf có phần không được sử dụng: 443 mà không có SSLEngine. Nhật ký Apache đã cho thấy điều này, điều này đã đưa tôi đi đúng hướng:AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
mivk

Vấn đề của tôi là tôi đã không chạy "sudo a2ensite default-ssl.conf". Conf ssl chỉ đơn giản là không có trong thư mục kích hoạt trang web, chỉ có trong các trang web có sẵn.
Json


10

Nếu bạn gặp lỗi sau khi thiết lập https vhost mới và cấu hình có vẻ đúng, hãy nhớ liên kết sites-enabled.


2
Nghe có vẻ ngu ngốc nhưng nó đã bắt được tôi
Alexei Tenitski

2
sử dụng a2ensite thay vì liên kết, đây là cách phù hợp trên hầu hết các hệ thống
AsTeR

1
Ngoài ra, hãy kiểm tra quy tắc tại apache2.conf (Ubuntu): Bao gồm các trang web được kích hoạt / *. Conf. Hãy chắc chắn các liên kết của bạn kết thúc bằng ".conf" hoặc thay đổi quy tắc đó để bao gồm tất cả các tệp.
Lepe

1
tôi đã tạo cấu hình trang web với cú pháp chính xác và liên kết nó với các trang web có sẵn. Vấn đề là: tên cấu hình của tôi không kết thúc bằng ".conf", vì vậy nó không bao giờ được tải và tôi gặp lỗi ở trên. Các Configs trong trường hợp của tôi đã được tải với lệnh "Bao gồm các trang web được kích hoạt / *. Conf", do đó, cấu hình cũng phải có tên <Any> .conf. Không quan trọng, nhưng không gây ra bất kỳ lỗi cú pháp nào (không bao giờ được tải) và gây khó chịu vì một ls đã hiển thị nó trong các trang web có sẵn ...
roland.minner

7

Câu hỏi cũ, nhưng kết quả đầu tiên trong Google đối với tôi, vì vậy đây là những gì tôi phải làm.

Máy tính để bàn Ubuntu 12.04 được cài đặt Apache

Tất cả cấu hình và mod_ssl đã được cài đặt khi tôi cài đặt Apache, nhưng nó chưa được liên kết ở đúng vị trí. Lưu ý: tất cả các đường dẫn bên dưới đều liên quan đến / etc / apache2 /

mod_sslđược lưu trữ ./mods-availablevà cấu hình trang web SSL nằm trong ./sites-available, bạn chỉ cần liên kết chúng với các vị trí chính xác của chúng trong ./mods-enabled./sites-enabled

cd /etc/apache2
cd ./mods-enabled
sudo ln -s ../mods-available/ssl.* ./
cd ../sites-enabled
sudo ln -s ../sites-available/default-ssl ./

Khởi động lại Apache và nó sẽ hoạt động. Tôi đã cố gắng truy cập https: // localhost , vì vậy kết quả của bạn có thể thay đổi đối với truy cập bên ngoài, nhưng điều này hiệu quả với tôi.


9
Các lệnh 'a2ensite default-ssl' và 'a2enmodule ssl' đơn giản hóa việc quản lý các mô-đun và liên kết trang web.
Giô

4

Hỏi người dùng về URL chính xác họ đang sử dụng trong trình duyệt của họ. Nếu họ đang truy cập https://your.site:80 , họ có thể nhận được lỗi ssl_error_rx_record_too_long.


Tôi đã nhìn thấy một ảnh chụp màn hình và nó không phải là: 80 Hãy tự mình thử: khỉfood.cashboardapp.com
Subimage

4

Trong trường hợp của tôi, tôi đã có Địa chỉ IP sai trong tệp máy chủ ảo. Nghe là 443 và khổ thơ là <VirtualHost 192.168.0.1:443>nhưng máy chủ không có địa chỉ 192.168.0.1!


Tôi có thể xác nhận rằng đây cũng là vấn đề đối với tôi ... sai địa chỉ IP
Stanley 9/03/2015

3

Xin vui lòng xem liên kết này .

Tôi đã xem tất cả các tệp nhật ký apache của mình cho đến khi tôi tìm thấy lỗi thực tế (tôi đã thay đổi <VirtualHost>từ _default_thành của tôi fqdn). Khi tôi sửa lỗi này, mọi thứ đều hoạt động tốt.


2

Trong trường hợp của tôi, vấn đề là https không thể khởi động chính xác vì Nghe 443 nằm trong dẫn xuất "IfDefine SSL", nhưng apache của tôi không bắt đầu với tùy chọn -DSSL. Cách khắc phục là thay đổi tập lệnh apachectl của tôi trong:

$HTTPD -k $ARGV

đến:

$HTTPD -k $ARGV -DSSL

Hy vọng rằng sẽ giúp được ai đó.


1

Vấn đề của tôi là do MTU THẤP qua kết nối VPN.

netsh interface ipv4 show inter

Idx  Met   MTU   State        Name
---  ---  -----  -----------  -------------------
  1 4275 4294967295  connected    Loopback Pseudo-Interface 1
 10 4250   **1300**  connected    Wireless Network Connection
 31   25   1400  connected    Remote Access to XYZ Network

Sửa chữa: giao diện mạng ipv4 thiết lập giao diện "Kết nối mạng không dây" mtu = 1400

Nó cũng có thể là một vấn đề đối với kết nối không phải VPN ...


1

Tôi đã có một cấu hình máy chủ ảo bị rối. Hãy nhớ rằng bạn cần một máy chủ ảo không có SSL cho cổng 80 và một máy chủ khác có SSL cho cổng 443. Bạn không thể có cả hai trong một máy chủ ảo, như cấu hình do webmin tạo ra đã cố gắng thực hiện.


0

Tôi đã gặp vấn đề tương tự ở một số trình duyệt để truy cập vào trang SSL của mình. Tôi đã thấy rằng tôi phải cung cấp cho fireFox đúng proxy (FireFox đang truy cập trực tiếp vào internet).

Tùy thuộc vào cấu hình lan (Đường hầm, lọc, chuyển hướng proxy), chế độ "truy cập trực tiếp vào internet" cho FireFox sẽ đưa ra lỗi này.


Một số proxy trả về phản hồi lỗi HTTP cho yêu cầu HTTPS mà nó không mong đợi (ví dụ: nếu bạn đi qua proxy sai hoặc proxy bị định cấu hình sai). Điều này có thể thực sự khó chẩn đoán vì các trình duyệt sẽ từ chối toàn bộ cuộc hội thoại và đưa ra lỗi, thay vì hiển thị cho bạn thông báo lỗi của proxy. Wireshark làm công việc mặc dù. Chỉ cần chạy vào đây bản thân mình.
Các cuộc đua nhẹ nhàng trong quỹ đạo

0

Bạn cũng có thể thử sửa tệp máy chủ.

Giữ tệp vhost với tên miền đủ điều kiện và thêm tên máy chủ vào tệp máy chủ / etc / hosts (debian)

ip.ip.ip.ip name name.domain.com

Sau khi khởi động lại apache2, lỗi sẽ biến mất.


0

Đối với tôi, giải pháp là ddclient của tôi không được bảo trợ đúng cách ...

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.