【解決】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サーバーに入り込み、下記コマンド。
でssl.confを開き、「SSLProtocol all -SSLv2」の部分に、 -SSLv3を追加し、なおかつ、SSLHonorCipherOrder Onを追記。
んで、同じくssl.confの最後尾に下記を追加。
そいで、ここが一番肝心。SSLCipherSuiteの行を見つけて、下記例のように編集。
ここはたぶん、サーバー環境によって多少違うはずです。
これでようやく、Bになりましたが、まだFacebookでエラーが出ております・・・。ネットの情報では、この状態ですでにA+になっているはずなんですけどね。
さんざん調べた結果、中間証明書が古いため、更新が必要でした。
再度、SSL会社の中間証明書をダウンロードし、差し替えて、httpdをリロードしたところ・・・
ついに、SSLランクは、A+へ!!
Facebookのシェアの不具合も改善されていました!!
というわけで、同じような内容で困っている方は、opensslとhttpdのアップデート、ssl.confの設定見直し、証明書の差し替えあたりを試してみましょう!
まず、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
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
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
この記事をシェアする
関連記事
- ・hosts.denyを使わずに、サーバーへの全てのアクセスをIPアドレス拒否する方法
- ・「.well-known」以下をwwwにリダイレクトさせない方法
- ・【格安VPN】NordVPNは本当に安全なのか?【閲覧履歴ダダ漏れw】
- ・「root@notty」って何者?
- ・アクセス解析ツール「awstats」をCentOSにyumでインストールする
- ・Kali LinuxをVagrantにインストールする
- ・【Tomcat】Apache+Tomcat連携で、特定のディレクトリのみTomcatにする方法
- ・【PHP】HTTPDの溜まりきったログを一気に削除する方法
- ・Macでトンネル接続してFTP/SFTP接続する簡単な方法
- ・【.htaccess】httpアクセスをhttpsに強制リダイレクトで、特定のファイルやディレクトリを除外する方法