#気まぐれ & 気まま & 天邪鬼な老いぼれ技術屋の日々の記録のうち、パソコン技術やインターネット技術、プリンタやPCアプリからプログラム言語などに関連した記事です。
右端上端の同一カテゴリージャンプボタンで同じカテゴリーの他の記事を順番にご覧いただけます。
Access Counter:  総アクセス数

楽 天 の 商 品

-2050- ローカルサーバーのエラー
= 今日は画像なし m(_ _)m =
テーマがあっちこっちするが、今回はローカルサーバー(自分のパソコン内の仮想サーバーで、ネットのテストなどを行う)として動作する XAMPPと言うアプリ上の Apacheサーバーについてトラブった話。
このe日記を書くためのCGIプログラムや HPをテンプレートと内容に分けておいてそれを PHP言語の Includeで表示させるなどの確認テスト動作のためなどに使っているが、しばらくぶりに動作させたところ、localhost のhtmlファイルが閲覧できなくなっていた。
1ヶ月ほど前に事務所の方のパソコンには 改めて XAMPPをインストール設定し、こっちは Webの方を SSL化した直後だったのでどうせだからと最初から SSL化をした。
しかし、自宅のパソコンの方は何も変更した覚えがないし・・・・と思ったが、ブラウザのURLの欄にhttp://localhost:80/my_server/ などと打ち込んで my_server/index.html を閲覧しようとすると、https://localhost:80/my_server/ と https に強制的にリダイレクトされてしまう。いろいろ検索・確認して行き着いた原因は、 Webの SSL化の前にローカルに丸ごとバックアップをとっておいて SSL化したので、現在のローカルのファイルは SSL化する前のものだと思いこんでいたのに、なぜか SSL化した後のファイルになってしまっていた。
どういうことかと言うと、このサーバーのルートにある .htaccess と言うファイルに SSL化によって
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
と言う SSL化のコマンドが書き込まれていた。これによって、一旦ブラウザでこのローカルのルート以下のファイルを閲覧しようとすると、XAMPPの Apache側は SSL化していないのに Apacheがこの .htaccess を解釈して httpsとしてデータを送り出し ブラウザもこの サーバーは SSL化されていると解釈するようで、しかも以降ブラウザはそれを記憶して my_server/index.html にはいきなり httpsプロトコルで接続しようとして、httpsでファイルが見つからない(もしくは不正な httpsサイト)と判断して 「安全な接続ができませんでした エラーコード:SSL_ERROR_RX_RECORD_TOO_LONG」エラーを返してしまうようだ。
そこでローカルで 非SSLには必要ない上記コマンドを削除したが、状況は変わらない。
ややこしいことに、一旦 SSL化されていると認識した URLはブラウザの HSTSと言う仕組みでリストに登録されてしまい、キャッシュのクリアーだけでは httpでは接続できなくなる様子。 HSTSのデータをクリアーする方法も見つけて試したが、なぜかこっちには localhostのデータは見つからない。それでもやはり強制的に httpsにリダイレクトしてしまう。
検索してみても、こんな httpsを httpに戻す逆のケースは稀有なことらしく少なくとも日本語サイトには完全な対策は見つけられない。
仕方ないので、自宅PCの XAMPPの Apacheも SSL化することに。
2019/03/03