
Google App Engine(GAE)で運用しているサイトがあって、そのSSL証明書の期限が切れそうになったので更新しようと思ったらエラーが出てはまりました。
検索しても全然情報が出てこなくてかなり苦労したけど、何とか解決できたので一応書いておきます。
SSL証明書はLet's Encryptを使っています。
Google Cloud Platformの管理画面に入って、App Engineの部分で新しい証明書をアップロードしようとすると「このページを閲覧する権限がありません。」という趣旨のエラーが出て何度やっても証明書の更新ができませんでした。
日本語で表示されたエラーの文言をそのままコピペして検索しても、ほとんど出てこなかったので、言語の設定を英語に変更して同じことをして英語のエラーを表示させました。
すると以下のようなエラーが出ました。
「You do not have sufficient permissions to view this page」
この英語の文言はそのままですが、さきほどの日本語のエラーは残しておくのを忘れてたので正確ではありません。
英語で表示されたエラーをそのままコピペして検索すると、同じエラーで困っているというのをいくつか見つけました。
こういう時に、つくづく日本語の弱さを感じますね。やっぱり英語は絶対にできた方がいい。
それで、解決のきっかけになったの情報がgcloudを使ってSSL証明書をアップロードすると、より詳細なエラーの内容が表示されるということでした。
その人が出たエラーは、証明書を発行する時にwwwの部分をワイルドカード(*)にしてたのがダメだったみたいな内容でした。
私は、出て来たエラーが、ページの閲覧権限が無いというような内容だったので、てっきり管理画面にログインしているアカウントの問題だと思ってました。
管理者権限でログインしているのに閲覧権限が無いというのがどうしても腑に落ちなかったのですが、どうやらそういうことでは無いということがわかったので、別の方法をいろいろと試して見ました。
最終的に解決できたのは、ドメインのDNSの設定をやり直したことでした。
もう一度全く同じドメインをカスタムドメインに追加して設定するところから始めたのですが、ドメインの所有権を確認するために指定されたとおりに、TXT、CNAMEの追加をしても全然確認が取れませんでした。
そこで、同じようにGAEでうまく動いている別のドメインのDNS設定を見てみると、AAAAの部分にも4つ設定がありました。
今回エラーが出ているドメインにはAAAAの設定をしてなかったので、それを追加して見ました。
- AAAA / @ / 2001:4860:4802:32::15 / 1時間
- AAAA / @ / 2001:4860:4802:34::15 / 1時間
- AAAA / @ / 2001:4860:4802:38::15 / 1時間
- AAAA / @ / 2001:4860:4802:36::15 / 1時間
これを追加すると、すぐにドメインの所有権の確認が取れました。
さらに、SSL証明書のアップロードも無事にすることができました。
今まで、AAAAの設定をしてなかったのに、どうして何事もなく動いていたのか分からないし、前にSSL証明書のアップロードをした時には今回のようなエラーも出ずに問題なくできました。
よく分借りませんが、何とか解決できたので、もし、同じような症状でエラーが出た人がいれば参考にしてみて下さい。