私のサイトの1つにアクセスしようとしている顧客がいますが、エラーが表示され続けます> ssl_error_rx_record_too_long
彼らはすべてのブラウザ、すべてのプラットフォームでこのエラーを受けています。私はその問題をまったく再現できない。
私のサーバーと私自身はアメリカにいます、顧客はインドにいます。
私はこの問題についてグーグルしました、そして主な原因はSSLポートがHTTPで話しているということのようです。私は自分のサーバーをチェックしましたが、これは起こりません。私は ここで述べた解決策を試した が、顧客はそれが問題を解決しなかったと述べている。
どうすればこれを修正できるか、またはどうすればこれを再現できますか。
解決策
顧客が誤って設定されたローカルプロキシを持っていたことがわかりました!
誰かがこの質問を見つけて将来デバッグしようとするのを助けてくれることを願っています。
Subimageが言及したリンク は、私にとっては正当な金額でした。仮想Hostタグを<VirtualHost myserver.example.com:443>
から<VirtualHost _default_:443>
に変更することを提案しました
エラーコード:
ssl_error_rx_record_too_long
これは通常あなたのサーバー上のSSLの実装が正しくないことを意味します。このエラーは通常、サーバー管理者が調査する必要があるサーバー側の問題によって引き起こされます。
以下は私たちが試みることをお勧めするものです。
サーバーでポート443が開いていて有効になっていることを確認してください。これはhttps通信用の標準ポートです。
SSLが非標準ポートを使用している場合、FireFox 3は時々このエラーを出すことがあります。 SSLがポート443で実行されていることを確認してください。
Apache2を使用している場合は、SSLにポート443を使用していることを確認してください。これは、ports.confファイルを次のように設定することで実行できます。
Listen 80 Listen 443 https
同じIPを共有する複数のSSL証明書がないことを確認してください。すべてのSSL証明書が独自の専用IPを利用するようにしてください。
Apache2を使用している場合は、vhostの設定を確認してください。
<VirtualHost>
を_default_
に変更してエラーを解決したと報告しているユーザーもいます。
これで私の問題は解決しました。私がエラーメッセージをグーグルして、正しい答えで最初にヒットすることは稀です。 :-)
上記に加えて、これらは他の人々が問題を引き起こしていることを発見したいくつかの他の解決策です:
SSL証明書が期限切れになっていないことを確認してください。
暗号を指定してみます。
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3
私にとっての解決策はdefault-ssl
がApache 2で有効にされていないことでした....ただSSLEngine On
を置くこと
私はa2ensite default-ssl
を実行しなければならなかった、そしてすべてがうまくいった。
私の場合は、<VirtualHost *>を<VirtualHost *:80>(Ubuntuのデフォルト)に戻す必要がありました。そうでなければ、ポート443はSSLを使用しておらず、プレーンHTMLをブラウザに送り返していました。
これがあなたのケースであるかどうかを非常に簡単に確認することができます:あなたのサーバーに接続するだけです http://www.example.com:443 。単純なHTMLが表示されている場合、Apacheはポート443でSSLをまったく使用していません。これは、おそらくVirtualHostの設定ミスが原因と考えられます。
乾杯!
私の場合は、設定でSSLEngine On
を設定するのを忘れていました。そのようです、
<VirtualHost _default_:443>
SSLEngine On
...
</VirtualHost>
新しいhttps vhostを設定した後にエラーが発生し、設定が正しいと思われる場合は、sites-enabled
でもリンクすることを忘れないでください。
昔の質問ですが、最初はGoogleになりました。そのため、ここで私がしなければならなかったことがあります。
ApacheがインストールされたUbuntu 12.04デスクトップ
すべての設定とmod_sslは、Apacheをインストールしたときにインストールされましたが、まだ適切な場所にリンクされていません。注:以下のパスはすべて/ etc/Apache2 /に対する相対パスです。
mod_ssl
は./mods-available
に格納され、SSLサイトの設定は./sites-available
にあります。これらを./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 ./
Apacheを再起動すればうまくいきます。私は https:// localhost にアクセスしようとしていたので、あなたの結果は外部アクセスのために異なるかもしれませんが、これは私のために働いた。
ユーザーがブラウザで使用している正確なURLを尋ねます。彼らが https://your.site:80 を入力している場合、彼らはssl_error_rx_record_too_longエラーを受け取るかもしれません。
私の場合、仮想ホストファイルに間違ったIPアドレスがありました。 listenは443、スタンザは<VirtualHost 192.168.0.1:443>
でしたが、サーバーには192.168.0.1というアドレスがありませんでした。
このリンクを見てください。
実際のエラーが見つかるまで、すべてのApacheログファイルを調べました(<VirtualHost>
を_default_
からfqdn
に変更しました)。このエラーを修正すると、すべてうまくいきました。
私の場合は、Listen 443が "IfDefine SSL"で無効になっていたためにhttpsが正しく起動できなかったのですが、私のApacheは-DSSLオプションで起動しませんでした。修正は私のapachectlスクリプトを以下のように変更することでした。
$HTTPD -k $ARGV
に:
$HTTPD -k $ARGV -DSSL
誰かに役立つことを願っています。
私はめちゃくちゃ仮想ホストの設定がありました。ポート80にSSLのない仮想ホストが1つ、ポート443にSSLのある仮想ホストが1つ必要であることを忘れないでください。
私の問題はVPN接続上の低いMTUが原因でした。
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
修正:netsh interface ipv4が "Wireless Network Connection"インタフェースを設定するmtu = 1400
それはまた非VPN接続上の問題であるかもしれません….
私にとっての解決策は、私のddclientが適切に起動していないことでした...
私は自分のSSLサイトにアクセスするためにいくつかのブラウザで同じ問題を抱えていた。 fireFoxに正しいプロキシを渡さなければならないことがわかりました(FireFoxはインターネットに直接アクセスしていました)。
LAN設定(トンネリング、フィルタリング、プロキシリダイレクト)によっては、FireFoxの「インターネットへの直接アクセス」モードでこのエラーが発生します。
Hostsファイルを修正してみることもできます。
Vhostファイルを完全修飾ドメインで保存し、hostsファイルにホスト名を追加します/ etc/hosts(debian)
ip.ip.ip.ip name name.domain.com
Apache2を再起動した後、エラーは消えます。