Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> サーバー関連 -> 【解決】Facebookのシェアでエラーが出てたと思ったらSSLの不具合だった話

【解決】Facebookのシェアでエラーが出てたと思ったらSSLの不具合だった話

クライアントのWebサイトをFacebookでシェアしようとすると、なぜかきちんとURLが読み込めず、説明文が正しく表示されなかったり、Google+でシェアすると文字化けを起こしたり、、という現象が起こったので、原因を調べた所、解決したので、その時のメモです。

まず、Facebookのシェアがうまくいかない時は、
下記の、Facebookデバッガーで、好きなだけデバッグできます。

https://developers.facebook.com/tools/debug/sharing/

んで、今回のエラー内容は、下記でした。

Can't validate SSL Certificate. Either it is self-signed (which will cause browser warnings) or it is invalid.

どうやら、SSL証明書がちゃんとバリデーションされていない様子。
しょうがないので、海外のサイトを調べて、SSLテスト出来るWebサービスを発見し、テストしてみました。

SSL証明書テストサイト:
https://www.ssllabs.com/ssltest/

色々エラーが出ており、SSLのランクはなんと、「F」でしたw
ちなみに、A以上は無いと、Facebookでエラーが起こるっぽいですね。

最初にやったこと : ミドルウェアのアップデート


まず、opensslとhttpdを最新にしました。SSHでLinuxサーバーに入り込み、下記コマンド。
yum update openssl
yum update httpd
service httpd reload


次にやったこと : SSLプロトコルの設定


vi /etc/httpd/conf.d/ssl.conf

でssl.confを開き、「SSLProtocol all -SSLv2」の部分に、 -SSLv3を追加し、なおかつ、SSLHonorCipherOrder Onを追記。
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On

んで、同じくssl.confの最後尾に下記を追加。
Header set Strict-Transport-Security "max-age=315360000;"

そいで、ここが一番肝心。SSLCipherSuiteの行を見つけて、下記例のように編集。
SSLCipherSuite ALL:!aNULL:!SSLv2:!EXP:!MD5:!RC4:!LOW:+HIGH:+MEDIUM

ここはたぶん、サーバー環境によって多少違うはずです。

これでようやく、Bになりましたが、まだFacebookでエラーが出ております・・・。ネットの情報では、この状態ですでにA+になっているはずなんですけどね。

最後にやったこと : 中間証明書のアップデート



さんざん調べた結果、中間証明書が古いため、更新が必要でした。

再度、SSL会社の中間証明書をダウンロードし、差し替えて、httpdをリロードしたところ・・・

ついに、SSLランクは、A+へ!!

Facebookのシェアの不具合も改善されていました!!

まとめ



というわけで、同じような内容で困っている方は、opensslとhttpdのアップデート、ssl.confの設定見直し、証明書の差し替えあたりを試してみましょう!

この記事の最終更新日:2017/11/09
最初に記事を書いた日:2017/11/09

この記事をシェアする

このエントリーをはてなブックマークに追加

関連記事

Meteoric Streamについて

管理人

Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> サーバー関連 -> 【解決】Facebookのシェアでエラーが出てたと思ったらSSLの不具合だった話