こんにちわ。
先日、色々とあってこのWordPressサイトのSSLが切れた?か、
そもそも発行先名とサイトのドメインが違ったことが原因か?
は、結局定かではなかったのですが、
原因はともかくとして、問題のあるサイト扱いされたので、
対策をしていました。
途中、適当にconfをいじってapacheが起動しなくなってしまうやら何からと・・・
忙しかったです(笑
そのお話しはいつかするときが来たらしようかと思いますが、
無事にサイトが復旧して、いざ投稿をしようと思ったら、
ツイッターカード周りでエラーが出る・・・
というかツイッターカードが表示されない!!!!
ヘルプ!!
ツイッターカードの設定ができない。
Card Validator でどのページでも
ERROR: Fetching the page failed because other errors.を吐きます。
こないだVPS弄る前の記事はツイのキャッシュ残ってるようで表示はあり。
それより後に更新分は表示されずちなみにプラグイン
ALL IN ONE SEO— 神沼☆FXトレーダー&ライター・ブログ運営者 (@kaminuma_nico) December 8, 2018
という様な状態だったので、ちょっと調べてみて解決はしたものの、
レンタルサーバーでの解決方法は見つけましたが、VPSでの解決方法なんかがあんまりなかったうように思えたので、初心者である私の忘備録として残しておこうかなと。
VPS利用時のSSL更新後などにツイッターカードが表示されない
厳密にいうと、SSL更新後というか、
期限切れで新規に取り直しした場合で、
かつ私のようにちょっと大前提がごちゃごちゃしちゃった系の人限定になるかもしれませんが、
とにもかくにも、Card validator で、
「ERROR: Fetching the page failed because other errors.」
のエラーが出た人は、一回疑ってみた方が良いのが、
SSLの中間証明書の件の様でした。
さんの情報を参考にさせてもらいました。
が、私の場合はWordpress動かしているのがVPSでなのと、
Let,s Encryptのcertbot-autoで証明書を発行しているので、
インストールができていないって問題ではなさそうかなと思いました。
結果としては、ドンピシャで中間証明書周りの設定ミスだったわけですが、
解決した方法については後述します。
まずは、自分の中間証明書がちゃんと機能しているのかをチェックしてみました。
DigiCert SSL Certificate Checker で、自分のドメインを入力してみます。
やはり、中間証明書か〜。
とりあえず、ほぼ特定できたし、進捗だけメモって後日に回そうかな。。。他は問題ないっぽかった。 pic.twitter.com/REQnGh6yii
— 神沼☆FXトレーダー&ライター・ブログ運営者 (@kaminuma_nico) December 8, 2018
という感じで、証明書部分がダメですよ。。。という連絡が返ってきます。
Let’s Encrypt の証明書の設定
私の場合は、Let’s EncryptでSSL証明を取っていたので、
その周りであることは間違いないとわかりました。
では、どこがどう設定を間違っていたのか?
私のサーバとapacheのverはこんな感じです。
サーバOS ubuntu 16.04
apache ver 2.4.18
まずは、ubuntuの場合だと、ネットで多く見かけるapacheのconfファイルの名称(多分CentOSが多いのだろうか?)とapacheの設定ファイルの場所が違ってたりするんですよね。
その辺りは今回は記述しないとして、
取りあえず、apacheのSSLconfファイルがapache2ディレクト内にあるので、
そこを見に行きました。
apache 2.4.8以上と、apache 2.4.8未満だと記載する内容が微妙に異なります。
詳細は、下記の
Let’s Encrypt の使い方 の【7. SSL/TLS サーバ証明書の取得完了】
に詳しく書いてありますが、
SSLCertificateFile
SSLCertificateKeyFile
SSLCertificateChainFile
をapacheのssl.confファイルに記載するやり方みたいなのが書いてます。
apache 2.4.8以上の私の場合は記載する部分は
SSLCertificateFile に
サーバ証明書と中間証明書が結合されたファイルである、fullchainN.pem
SSLCertificateKeyFile に
秘密鍵である、privkeyN.pem
(Nは連番で数字が入るが、私の場合は入ってない)
の二つのパスを記載すればいいということだったのですが、
私は間違って、SSLCertificateFileに中間証明書ファイルのパスを記入していました。
(chainN.pem)
で、
多分うまく機能していなかったと。
その部分を訂正したら、DigiCert SSL Certificate Checker でのエラーも消えました。
そして、
時間を置いてみる。
Caed Validater ではエラー吐かなくなった。原因は、apacheのバージョン勘違いによる
conf 内の SSLCertificateFile での指定ファイル間違い。ネットで中間証明書をインストールしたら治ったっていうのを参考にさせてもらいました。
とりあえず早々に解決しそうで pic.twitter.com/pkyXXAetUz— 神沼☆FXトレーダー&ライター・ブログ運営者 (@kaminuma_nico) December 8, 2018
Card validator でもエラー吐かなくなり、
ツイッターカードもうまく表示されましたとさ。
一応、忘備録的に書いておきました☆
「ERROR: Fetching the page failed because other errors.」まとめ
ツイッターのツイッターカードが表示されずに、Card validator で、
エラーで「Fetching the page failed because other errors.」
が出た場合は、背景にもよりますが、SSL証明書関係を疑ってみるのもありかと思われます。
エラー内容がその他のエラーって感じで出るので五里霧中になりますが、
私は少なくとも上記な感じでした。
それでは、お疲れさまでした。