Cafe Cappuccino

かふぇ・かぷちの/新幻想的独り言4 ねふぁの気まぐれな独り言

httpsで通信出来る様になり、一息つくためにキッチンに飲み物を取りに行く途中、なにやら室内外の温度を表示するESP8266 (ESP-WROOM-02)のデバイスが再起動を繰り返している。電源オフオンしても同じで起動後再起動を繰り返す。

・・・そうか、ESP8266もサーバーから情報を取る様にしてたからhttpsにリダイレクトすると情報が取れずエラーになるんだ。電子工作のデバイスからアクセスするページはhttpsから除外しておかないと。

と言う事でconfファイルを編集しなおしてESP8266からアクセスするファイルやフォルダはリダイレクトから除外。/etc/httpd/conf.dに置くサイトの設定ファイルは最終的にこんな感じ。esp8266関係のアクセスはポート80そのまま、それ以外はhttpsの443にリダイレクトする。

<VirtualHost *:80>
        ServerName nefastudio.net:80
        DocumentRoot /home/hoge/www
        <Directory /home/hoge/www>
                #ディレクトリ関係の設定
        </Directory>
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^nefastudio\.net
  RewriteCond %{REQUEST_URI} !^/esp8266/*
  RewriteCond %{REQUEST_URI} !^/scriptforesp8266*
  RewriteRule ^/(.*)$ https://nefastudio.net/$1 [R=301,L]
</VirtualHost>
 
<VirtualHost *:443>
        ServerName nefastudio.net
        DocumentRoot /home/hoge/www
        <Directory /home/hoge/www>
                #ディレクトリ関係の設定
        </Directory>
SSLCertificateFile /etc/letsencrypt/live/nefastudio.net/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/nefastudio.net/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/nefastudio.net/chain.pem
</VirtualHost>

温度表示も戻り、一安心。

ホームページチェックしトップも記事もhttpsで動いているし、特殊用途のプロキシ機能も動作しているしこれでOK!

が、ふとchromeブラウザのURLの左を見るとページロード途中鍵マークが出た後iマークに変わる。

はて、なんじゃこりゃ。と思いiマークをクリックすると

httpsで繋がっているけど、なんかちゃんと出来ていないっぽい。

調べてみると、chromeの検証機能のコンソールを見るとエラーを確認出来るらしい。確認すると、ページ内で外部にリンクしているサイトがhttpのままになっており、そこがセキュリティに引っかかっている様だ。

参考:https://london3.jp/2017/08/site-ssl/

コンソールのメッセージで「Mixed Content」と出ているのがそれである。

chromeで右クリック、検証を開いて右側上部に出てくるConsoleタブを見るとエラーが確認できる。

facebookやgoogle ad、amazonと言ったシェア系や広告系のURLがhttpのままになっていた。シェア系のプラグインはもういいや、と外す。GoogleのURLはhttpsに置換する(各所のファイルにちらばっていたので探し出して修正するのに苦労した)。Amazonは下記情報から、URLを書きかえる必要があった。

参考:https://www.hide10.com/archives/22527

旧:http://ecx.images-amazon.com
新:https://images-na.ssl-images-amazon.com

記事内のURLは上記サイトで紹介されていたSearch Regexのプラグインを追加し、一括で更新出来た。最後に、サイトのベースURL。Wordpressの設定から変更出来るが、一つだけグレーアウトして編集出来なかった。

設定をwp-config.phpに記述しているとグレーアウトするらしい。ファイルを編集して完了。

define('WP_HOME', 'https://nefastudio.net');
define('WP_SITEURL','https://nefastudio.net');

サイトの動きをチェックしていると、ESP8266から定期的に写真をアップロードしているのだが、写真が更新されていない。ESP8266がサーバーからデータを取得する方はhttps除外で直ったが、ESP8266からのデータアップロードが動いていない。

ログを調べてみるとエラー400となっている。

"POST /hoge/fileupload.php HTTP/1.1" 400 226 "-" "-"

400はリクエストに問題がある際にエラーとなるらしい。しかしESP8266側は何も触っていない。触ったのはサーバー側だけだ。SSLを一旦外してみるが変わらずエラー。

ESP8266のスケッチを見直してみる。ヘッダー情報が何か悪いのだろうか。
気になった点は

          client.println("Content-Type: application/json");
          client.print("Content-Length: ");
          client.println(data.length());
          client.print("\n");
          client.print(data);

と、改行コードが\r\nと\nが混在している(printlnは\r\n)。もしかしてこれか?と思い検索してみると

参考:https://mgng.mugbum.info/1510

どうやら、改行コードの扱いが厳しくなり\nはエラーになる様だ。ESP8266のファーム更新して回るのは面倒だったので、回避策としてチェックを甘くする下記フラグを設定した。

HttpProtocolOptions unsafe

これでESP8266からのアップロードも正常に動作する様になった。

長い間サーバー更新を放置していたのが悪いが、予想以上に面倒であった。
ひとまず、これでサーバーのSSL化は出来た様だ。次に大幅な更新がある際は、Cent OS 6からは抜けれそうにないので新規セットアップになりそうだ。

と言う感じで締めくくろうとしたが、まだ終わりではなかった。

SSLとは関係なかったのだが、本サイトがGoogle検索に全くひっかからない。検索の最後の方に出てくるとかではなく全く検索結果にひっかからない。
「nefastudio」で検索しても検索結果に出てこないと言うのは異常である。何かGoogleが本サイトを排除する様な事をしでかしただろうか。Bing検索では問題無くヒットする。

検索に引っかからない場合Google Analytics(Google Search Console)を使うと解析出来るらしい。と言うか、ホームページ開設当初はこのあたり色々やっていたが最近は全然触っていなかった。

Googleに登録してもらうために、サイトを登録する・・・そんな事もやっていた記憶がある。

再度サイト登録してみるか、とGoogle Search Consoleからサイトを登録し、認証方式としてHTMLファイルによる認証を行う。

これはGoogleから提供される特定のHTMLファイルをサイトに置いて、Googleが同ファイルにアクセスしてサイト管理者である事を確認する方式である。
ファイルを置いて・・・と言うかもう置いてある。立ちあげ当初にも同じ事をやったので残っている様だ。そして確認ボタンを押して確認してもらう。

・・・が、ファイルが見つからんぞと怒られる。

はて?ブラウザで同ファイルにアクセスするも問題無い。が、何度やってもGoogleにファイル無いと怒られる。

・・・なじぇ?

Googleからアクセスできない・・・。そういえば前どこかから連続アクセスが多発してサーバーが不安定になる事が何度も起きて、その付近のIPアドレスをどんどんiptablesのフィルタリングに追加してアクセス禁止した事がある。
もしかして、その中にGoogleのサーバーのIPアドレスがあったのか?

iptablesからアクセス禁止のipアドレスを外してみる。

「確認できました」

どうやらGoogleを出禁にしていたらしい。そら検索結果にも出てこないわ。検索出てこないのssl関係なかったわ。

これでようやく落ち着ける、かな。

作業中、データ保管用のHDDからジー カタンの嫌な音が聞こえてきた。PC電源オフオンしてもジー カタンの音は改善されず、HDDが見えなくなってしまった。HDDを開けてみると、プラッタ中央にスジが入っていたので、物理的にお亡くなりになった様だ。なぜ急にこの様な症状が発生するのだろうか。

これまでHDDがお亡くなりになる事は何度もあったが、何度味わっても喪失感が。

幸い、古いファイルのバックアップは取ってあったのと新しいデータはonedriveと同期する様にしていたので損害はあまり無くonedriveから同期し直す事ですぐに復旧出来た。

最近はスマホもクラウドにデータがバックアップされているのでスマホ買い替えの際もアカウント登録でデータやアプリ移行が何もせずに出来、複数端末間のデータ同期も簡単にできてしまうのでクラウドさまさまである。Googleには情報を知られすぎている恐怖はあるが。便利さとセキュリティの強さは相反するものである。

さらに追加

この記事を編集中、Wordpressの管理画面のトップに「PHP古いよ。新しくした方が良いよ。セキュリティ面でも、速度も3~4倍早くなるよ」のメッセージが。

使っていたのはPHP5。最新はPHP7.3。速度改善するのなら上げておくか・・・と思いあげる事に。

参考:https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0

上記サイトを参考に、古いPHPを削除して新しいPHPを入れる。

# yum remove php-*
# yum install --disablerepo=* --enablerepo=remi,remi-php73 php

しかし、Wordpressの情報やphpinfoで見てもPHPが5のまま。

/etc/init.d/httpd restart

でhttpdを再起動するとPHP7.3になった。・・・が、やはりすんなりとは行かなかった。sql関係でエラーが出る。プラグイン関係でエラーが出る。/var/log/httpd/error_logを見ると、色々エラーが出る。人気記事のサムネイルも出ない。

使わない/あまり使っていないプラグインはばっさり削除。人気記事のサムネイルが出ない症状や、マルチバイト文字列のエラーはパッケージ追加で直った。

yum install --disablerepo=* --enablerepo=remi,remi-php73 php-mbstring
yum install libwebp
yum install --disablerepo=* --enablerepo=remi,remi-php73 php-gd

WPMLプラグインで多言語対応しているサイトでget_term_linkがWP_ERRORを出しており、これは直せなかったのでif文で言語を確認し表示するURLを直打ちで設定し回避した。

<?php if (ICL_LANGUAGE_CODE == 'ja') { ?>
<?php } else { ?>
<?php } ?>

Google検索にもサイトへのリンクが復活してきたので、またしばらくは記事も増やしていこうと思う。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください