金曜日の夕方(JST)に、通貨取引を扱っている会社のウェブサイトを見ていました。問題はありません。土曜日の朝に私はサイトに戻ってみますが、Chrome=とSafariはどちらもセキュリティ証明書を信頼していないと言っています。私はそれをチェックし、検証が期限切れでした。奇妙なことに。
それから今朝、私は再びサイトを訪れました、そして証明書は有効であり、そして私は入ることができます(ChromeとSafariの両方で)
それから私は癖に気づきました。
失敗した証明書では、通知は証明書が2016年8月13日土曜日の8:59:59[〜#〜] jst [〜#〜]。
しかし、今日の有効な証明書では、通知は証明書が2016年8月13日00:00:00から有効であることを示しています[〜#〜] gmt [〜#〜]。
私は時差をチェックし、8:59:59[〜#〜] jst [〜#〜]は23:59:59[〜#〜] gmt [〜#〜](注:英国は夏時間です)
これは、ブラウザが証明書の有効性をチェックする方法に問題がありますか?彼らは常に有効期限が23:59:59で有効期間が00:00:00であると想定していますが、タイムゾーンの違いやサマータイムの違いがあるかどうかを確認しないでください。
私の推測では、Webサイトの証明書は実際に有効期限が切れており、その後、もう一度確認する前に新しい証明書を購入して置き換えました。
Comodoが証明書を発行するとき、「有効開始」時刻は発行日00:00:00 UTCに遡り、「有効期限」時刻は有効期限の23:59:59です。したがって、新しい証明書は8月13日のいつでも発行できたはずです。
(これはComodoの特定のポリシーにすぎません。他のCAはそれを異なる方法で処理します。)
これを証明しようとするのは少し遅いですが、 Censys のようなツールでドメインを検索し、昨日の証明書のコピーがあるかどうかを確認できます。
架空のタイムライン:
タイムゾーンの違いやサマータイムの違いがあるかどうかを確認しないでください。
証明書の有効期限はGMT(UTC)で設定されます。表示されるのは、さまざまなブラウザが証明書の有効期限を提示する方法の違いです。つまり、Safariは証明書をJST(おそらくローカルタイムゾーン)に変換しますが、ChromeはそれをGMTで表示します。チェック自体は同じタイムゾーン内の両方の時間を比較することによって行われます。つまり、通常、チェックする前に現地時間とGMTを比較します。
彼らは常に有効期限が23:59:59であり、有効期限が00:00:00であると想定していますか?
有効期限の精度は秒単位であり、ブラウザはこの方法でチェックします。また、一部のCAは有効期限を23:59:59に設定する場合がありますが、そうでない場合もあります。