
SSL証明書の期限切れに注意、自動更新でもエラーが出る場合あり
SSL証明書には有効期限があり、期限切れすると警告画面が表示されWEBサイトが映らなくなります。
有効期限があるのはSSL証明書の安全性を高めるためであり、有効期限が長いのはセキュリティが高いとは言えません。
有効期限はどんどん短くなります。期限切れを防ぐには自動更新機能のあるSSLを利用するか、きちんと管理スケジュールに落としておく事です。
「Let's Encrypt」が期限切れ、自動更新で更新エラーが起きた
本記事は少し前に、わたしが担当するWEBサイトが実際に映らなくなった実体験をもとにご紹介しています。
クライアントからWEBサイトが表示されていないという報告を受けて急いで原因を探ると、SSL証明書が期限切れを起こしていました。
自動更新設定なのに期限切れしていた
該当するWEBサイトはXserverで運営をしており、無料SSLの「Let's Encrypt」を使っていたのですが、管理画面に入ると証明書の更新がされていませんでした。
すぐに更新申請を掛けたところ程なくしてWEBサイトが映るようになりました。
自動更新になっているはずのSSL証明書が、時折更新エラーを起こす事をここで知ったわけです。
SSL証明書実装が浸透した背景
GoogleがSSLページを優先的にインデックスすると発表したのが2015年の12月で、それから3年半が経とうとしています。
この間にWEBサイトを暗号化(SSL化:httpからhttpsへ)をする動きが爆発的に増えましたね。
同時にGoogleからはSSL化をしていないWEBサイトは検索順位が下がるというアナウンスもされました。
結果、企業サイトだけでなく個人ブログやSNSサービスなど全てのWEBサイトで、SSL化を実装する動きが加速した訳ですね。
導入しやすくなったSSL
本来WEBサイトをSSL暗号化するのは、フィッシングやハッキング・および改ざん防止が目的です。
SSL化をすることで通信が暗号化されるので、内容を傍受される事無く安心してWEBサイトを閲覧できるようになる訳です。
ただ2015年までのSSL証明書サービスは、月々の利用料が別途掛かる事が最大のネックでした。
ですので2015年以前までは、共用SSL等を利用してお問い合わせフォーム等の情報送信が必要な部分にのみ適用しているのが大部分でした。
無料SSLサービスの登場
そんなSSL証明書サービスが2016年以降一気に普及した背景には、SSLサービス環境が改善された影響が大きいと思います。
中でも一番の要はやはり無料SSLサービス「Let's Encrypt」が登場した事でしょう。
そしてサービスももちろん導入しやすいよう、レンタルサーバー側の環境整備が進みました。
・利用料が無料のSSLサービスLet's Encryptが登場した
・共用SSLではなくドメインレベルの独自SSLが導入しやすくなった
・SSL設定がレンタルサーバーの管理画面から簡単に導入できるようになった
・有料SSLでも年間1,000円程度と安価になった
このようにSSLの実装の敷居が低くなり、利用料金がお得になった事が大きいですよね。
今の契約プランでは使えない場合も
導入しやすくなったSSLですが、今の環境で誰でもそのまま使える訳ではありません。
レンタルサーバーによっては契約しているプランに無料SSLサービスが組み込まれない場合があります(別プランに実装)。
その場合は組み込まれたプランへWEBサイトの引っ越しが必要になります。
SSL証明書には有効期限がある
このSSL証明書にはレンタルサーバーと同じように「有効期限」が存在し、本来は期限ごとに更新作業が必要です。
今無料のSSLサービスの代表格である「Let's Encrypt」の場合、この有効期限の更新は自動でおこなわれるようになっています。
しかし自動更新でないSSLサービスの場合は有効期限が来る前に手動更新をする必要があるのです。
このように有効期限が必ず設定されています。
※Let's Encryptは自動更新と言いましたが、冒頭で説明したようにエラーで更新されない事もあります。要注意です。
有効期限の確認方法
ブラウザのアドレスバー(URLのところ)にある鍵マークを押すと、小窓が表示されます。
小窓ウィンドウ内にある「証明書」をクリックすると確認ができます。
SSL証明書の有効期限が切れるとどうなる?
SSLサーバー証明書には有効期限が設定されており、もともとその最長期間は「3年以内」とされていました。
しかし2018年3月からは、有効期限が3年のSSL証明書はその期間が長すぎるという事で発行禁止になりました。
その結果いま購入できるSSL証明書の最長は約2年(約27ヶ月)となっています。
ではこの有効期限が切れるとどうなるのでしょうか。
エラーページではなく警告表示がでる
WEBサイトで利用しているSSL証明書の有効期限が切れてしまうと、WEBサイトが閲覧できなくなってしまいます。
一般的にWEBサーバーやページの設定ミスなどの場合は、前もって設定されたエラー画面を表示したり、TOPページに戻るのが普通です。
しかし有効期限切れの場合はこのようなエラーページ機能が働きません。
代わりにブラウザから直接「安全ではありません」や「プライバシーが保護されません」などの警告表示が出ます。
プライバシー警告例
ブラウザ側がSSL証明書の有効期限切れを認識した状態の警告
WEBサイトが表示されなくなる
つまりSSL証明書の有効期限が切れてしまうと、WEBサイトへ接続することができなくなってしまう事を意味しています。
httpsでは証明書が期限切れのために表示ができない訳ですが、SSLを設定する間の「http」の状態であれば表示がされます。
しかしSSL化の際に「https表示」で統一切替をした訳ですから、いきなり元に戻せる訳がありませんよね。
ユーザーもhttpsでお気に入りに入れているでしょうし、Googleの検索結果もブラウザも全てhttpsで記録しているからです。
WEBサイトへの接続ができなくなると
当然WEBサイト自体の表示がされない訳ですから、訪問者はエラーが出ている事を受けてサイトを去っていきますよね。
しばらくその状態が続けば「閉鎖されたのかな」とユーザーは思うかもしれません。当然サイトの信用自体も下がります。
訪問数はもちろんの事、Googleもサイトにつながらない事はすぐに察知しますので、評価が下がり検索順位も下がります。
まさに良い事なしの致命的な状態になるのですね。
有効期限が設定されている理由
では、なぜSSL証明書にはこのような有効期限があるのでしょうか。
一般的にSSL証明書というのはその有効期間が短ければ短いほどセキュリティが高いとされています。
わかりやすく言うと、存在を証明・確認する頻度が「長いか短いか」というお話です。
1年に1回確認よりも半年1回確認の方が「マメに確認している」事になりますよね。
セキュリティ面では短期間が望ましい
企業認証やドメイン認証はその企業やドメインの存在を証明している証明書です。
例えばEV証明書を取得するには「電話による確認」が必要になります。電話認証でその企業が実在しているかを確認しているのですね。
企業の存在をマメに確認するため
縁起でもない話ですが、ではもしこの会社が確認直後に倒産してしまったとしましょう。
その場合、倒産しているのにも関わらず認証したSSL証明書がそのまま使われてしまいます。
この期間が1年続くよりも半年で消滅した事が判明する方が、実在しない企業の証明期間が短くなりますよね。
これはドメイン認証のSSL証明書でも同様です。
セキュリティ侵害の影響防止
他にも認証局でサイバー攻撃などの侵害が起きた時、その影響を最小限に抑えるセキュリティ面を考慮すれば、その有効期間は短ければ短い方が良いと言えますね。
管理者側は更新が面倒になる
一方WEBサーバー・WEBサイトの管理者側からすると、このSSL証明書の更新が頻繁にあると面倒ですよね。
SSL証明書の更新の間隔が長くなればそれだけ気にしないで良いのです。
証明書の発行側も更新期限の長い商品の方がよく使われるので、有効期間の短縮には反対していたのです。
「安全性」か「利便性」か
SSL証明書の「安全性」を取るか「有効期限」による利便性を取るかは、確かに悩ましい問題の一つではあります。
しかし結果、本来3年あった有効期限は、2年へと短縮され、さらに2年から1年への短縮が決定しました。
「安全性」の方を優先すべきで「有効期限」は自動更新を進めるという形で落としどころができたという事でしょう。
有効期限切れはなぜ起きるのか?
ではわたしがやらかした(冒頭で説明しています)様に「有効期限切れ」が起きてしまうのは何故でしょうか。
基本的にSSL証明書というのは、レンタルサーバー契約と違ってクレジットカード決済で自動的に更新してくれるサービスとは違うのです。
毎回管理者自身で手動で延長契約設定をする必要があるのですね。
手動更新は忘れられやすい
その有効期限が年単位であるため、その時々の担当者に浸透しにくいという背景もあります。
そうなるとWEBサーバー管理者が毎回きちんと手動でSSL証明書の更新をおこなえるかは疑問なのですね。
その点Let's Encryptなどは、SSL証明書の発行と更新を自動化しています。
そうすればそのSSL証明書の有効期間が例え短くても(Let's Encryptは有効期限が90日です)、特段に不便な事にはなりませんね。
ただ今回はこの自動更新設定がエラーになっていた事が原因なので、自動更新の意味がない訳ですが。
有効期限が切れた場合の操作
管理画面からすぐに更新操作をおこなう
有効期限が切れてしまったら、WEBサーバーの管理画面ですぐにSSL証明書を更新するようにしてください。
レンタルサーバーの管理画面に入れば、大部分がそこでSSL証明書の更新をする事ができるようになっています。
今回は、エックスサーバーのSNI SSL (ネームベース) のSSL証明書を更新する手順を紹介します。
XserverのSSL証明書更新
Xserverのサーバーパネルへログインをして、メニューからSSL設定をクリックします。
該当するドメインの欄にある「選択する」をクリックします。
証明書が切れていたら下記のような画面が出ています。
画面上の更新」を押すと更新作業がおこなわれます。同時にWEBサイトも表示されるようになるので、しばらく待ちましょう。
Xserverの自動更新機能について
無料独自SSLで使用するSSLサーバー証明書の有効期限は、発行日から90日間となっています。
Xserverから、有効期限の30日前・25日前・20日前にそれぞれ自動更新を行い、有効期限を延長する設定です。
この自動更新が失敗した場合は、メールで更新未完了のご連絡がメールで入る事になっています。
SSL証明書の有効期限切れを防ぐ対策方法
では次にSSL証明書の有効期限を切らさないための対処法をご紹介します。
自動更新できるSSL証明書を利用する
最も普及している無料SSLサービスの「Let's Encrypt」は、自動更新機能を提供しています。
Let's Encryptであればこういった証明書更新を自動的におこなう仕組みになっているため、有効期限を気にする必要がありませんね。
しかし更新時のエラーが発生して更新が止まってしまう事があります。その場合はご自身で管理画面から延長操作が必要になりますので注意して下さい。
スケジュール登録・徹底
自動更新でなければ自身で管理するほかありませんので、スケジュール(カレンダー・手帳)上に有効期限を登録しましょう。
期限間際まで待つのではなく、早めに(90日前からOK)更新を行うようにしましょう。
期限は引き継げる
SSL証明書は年単位のものが多いのですが、更新の際に更新前のSSL証明書の有効期限を引き継ぐことができます。
2~3ヶ月前に更新をしても有効期限は本来の期間を守るので安心して下さい。絶やさない事が重要です。
なお企業が社内のグループウェアなどに登録する場合は、必ず共有情報の予定表に登録しておきましょう。
メールで管理
レンタルサーバーによっては、有効期限が切れる前にお知らせメールが送信される事があります。
90日以内であればいつでも更新ができる訳ですから、メールを受け取った時点で更新作業を始めましょう。
EV証明書は発行に2週間かかる
利用中の証明書が「EV証明書」であった場合は、その発行まで2週間ほど時間が掛かる事があります。
更新間際でこの事に気づいてしまうと、申請が間に合わずにWEBサイトが表示されなくなってしまう事があります。
DV証明書に比べてOV・EV証明書は発行までに時間が掛かる事を忘れないで下さいね。
余裕を持った更新スケジュールが大切
こういった状況を避けるためにも、これらのSSL証明書を利用しているWEBサイト担当者は余裕を持ったスケジュール管理を行いましょう。
EV証明書の発行が間に合わない場合、暫定措置として即日発行が可能なDV証明書を発行し、EV証明書が発行された後に差し替えるといった事も出来ます。
AppleがSSL証明書の有効期限を13か月に短縮(2020年9月より)
ではここで、特にサーバー証明書を2年の有効期限で取得するようにしているWEBサイトは注意してほしいニュースを一つ紹介します。
2020年9月1日以降に発行された「有効期限が399日以上」あるSSLサーバー証明書を持つWEBサイトをSafariで開こうとすると、サーバー接続が失敗する様になります。
これはいったいどういう事なのでしょうか。
SafariはiPhoneでよくみるコンパスマークです
SafariとはAppleで開発されているWEBブラウザです。
PCではMacの他にiPhone・iPad、Apple TV、Apple Watchなどの端末に標準搭載されているブラウザですね。
つまりSSLサーバー証明書の有効期限を398日間以下にしておかないと、iPhoneやMacからWEBサイトを見る事ができなくなる事を意味しています。
Apple声明のポイント
・2020年9月1日から有効
・対象ブラウザはSafariのみ
・有効期限399日は1年と33日(厳密には86400秒×398日)
・2020年9月1日00時00分より前に発行された証明書には影響しない
つまり9月以降に「399日以上の期間があるSSL証明書」を取得すると、Safariでは有効期限が長いため「違反扱い」とされてWEBサイトが映らないのですね。
期限切れの警告表示が出る可能性
Appleの発表に「This might cause network and app failures and prevent websites from loading.」とあります。
決定されたばかりなので、具体的なエラー画面の詳細などはまだ明らかにされていません。
SSL証明書が期限切れを起こしたWEBサイトのように、アクセス時に「接続できない」エラー画面が表示される可能性があります。
日本で特に利用されているiPhone
特にiPhoneの所有率が高い日本では、iPhoneの基本ブラウザであるSafariからのアクセスが一般的に多いはずです。
Safariユーザーからのアクセスに大きな悪影響が出ることが予想されますね。知らない人が多い訳ですからね。
これは大きな問題になるのではないでしょうか。
他ブラウザも追随を検討中
この有効期限の短縮を正式発表しているのは現在Safariのみですが、今後はわかりません。
もともとSSL証明書の発行側は「1年への短縮」に賛同しているので、Google ChromeやFirefoxも追随してくる可能性もありますね。
※既にFirefoxではこの問題を検討している様です。
ですので2020年9月1日以降にサーバー証明書を取得または更新をする場合、その期限は1年程度にしておくべきでしょう。
1年ならば365日で判定外ですし、Let's Encriptなど90日更新のSSLは問題ありません。
SSLサーバ証明書の警告表示の種類
SSLサーバー証明書は、有効期限切れ以外にもエラー時に警告表示が出ます。
では他にどのような警告表示が出るのか、一部をご紹介します。
よく目にするのは「セキュリティで保護されたWEBページコンテンツのみを表示しますか?」というものです。
SSL化が不十分な時に出る警告
これはSSL化が不完全なWEBサイトにおいてよく見かけられる警告です。
例えばSSL証明書で認証されたWEBサイト内の中で、例えば画像やリンクなどでつながるコンテンツが保護されていない場合です。
つまりhttps通信ができていないリソースがある場合にこのメッセージが出てきます。
※大抵の場合、このようなWEBページにはブラウザのアドレス欄に「鍵マーク」がついていません。
きちんとSSL化されているWEBページには鍵マークが付いています。
つまりは管理者によるSSL設定ミスですから、正しく「https」で始まるURLにすれば警告は出なくなります。
その他の警告表示
上記以外にも有効期限切れとしては
・証明書の発行元が信頼できない
・アドレスの不一致
・危険性があるサイトを警告
などいろいろなケースが考えられます。それに応じて警告画面も違います。
まとめ
SSL証明書の有効期限を短くしてセキュリティを高める。これが重要だという事を本記事で説明しました。
Safariの件は「安全性」を優先するための実質措置として、アップルがまず一歩先に体現してきたという事でしょう。
証明書の期限切れなんて起きないと思う担当者が大半かと思いますが、実際のところ証明書の期限切れはよく起きています。
私の担当するクライアントWEBサイトも、自動更新であるにもかかわらず90日の期限が切れて映らなくなっていました。
SSLサイトがこれだけ普及しているのですから、有効期限には注意をしていくべきです。
できるだけ有効期間は短く
現在もSSL証明書最長2年で比較的長い期間の証明書が発行できています。
発行はしたものの、担当者が変わっていたり更新申請方法を忘れてしまったりしていれば、2年後なら何が起きるかわかりませんよね。
サイトが見られなくなることで不利益が生じるだけでなく、多くのサイト利用者にも迷惑を掛けることになります。
SSL証明書は確実にかつこまめに延長更新をして、期限切れリスクをなくしていきましょう。