クライアントは接続し、一秒ほどネゴシエーションした後、証明書が期限切れだと報告します。誰かに何かを再発行してもらう前に、目の前のデバイスの日付を見てください。一か月スリープしていたノート PC、手動で設定した時計のスマートフォン、動作する NTP ソースのないルーターは、いずれも TLS スタックに誤った時刻を知らせます。証明書は有効期間の内側でのみ有効であり、検証はその期間をローカルの時計が主張する時刻と比較します。時計を正しく合わせ、それから問題が本当かどうかを判断してください。

まずデバイスの時計から始める

ターミナルを開き、システムが考える UTC を読んでください。デスクトップの時計ウィジェットではありません。それはタイムゾーン調整された表示や、GUI がキャッシュした古い値を示すことがあります。

date -u
timedatectl status

大きく進んだ時計は有効な証明書を期限切れに見せ、大きく遅れた時計はまだ有効でないように見せます。一部のクライアントはこれを同じ一般的なハンドシェイク失敗として報告します。同期が無効になっている場合や時刻ソースに到達できない場合は、まずそれを直し、どのファイルにも触れる前に再テストしてください。期限切れを回避するために時計を戻すのは解決策ではありません。デバイス上の他のサービスを壊し、ID の問題を元の場所にそのまま残します。

時計が正しければ、期限切れは実際のものであり、この手順の残りが当てはまります。二台のデバイスのタイムスタンプを比較する前に、クライアントのログがどのタイムゾーンを使っているかに注意してください。別のゾーンのサーバーは、実際にはどちらでもないのに更新が早すぎたり遅すぎたり見えることがあります。机の上の壁時計ではなく、クライアント自身のログ行のタイムスタンプと比較してください。

プロファイルより先にエラー行を読む

正確なテキストを保存してください。OpenVPN の検証失敗は深さと理由を示し、その二つのフィールドが誰が行動すべきかを教えてくれます。

VERIFY ERROR と error=certificate has expired は、チェーン内の特定の位置での有効性の失敗です。これは パスワードの拒否でもタイムアウトでもありません。そして 三つはそれぞれ別の対応を必要とします。

クライアントのバージョンとともに、行全体をメモにコピーしてください。メッセージが代わりに証明書はまだ有効でないと言っているなら、時計の問題に戻ります。発行者が不明だと言っているなら、寿命の問題ではなく信頼の問題であり、いくら更新しても変わりません。

どの証明書が期限切れかを特定する

深さゼロは接続した相手が提示した証明書で、深さが増すほどルートに近づきます。仕事用の VPN は通常、クライアント ID かサーバー証明書を期限切れにし、時には組織が所有を忘れていた中間証明書も期限切れになります。

プロファイルが実際に参照しているファイルの日付を、エラーで示された深さのファイルから順に出力してください。

openssl x509 -in client.crt -noout -subject -issuer -dates
openssl x509 -in ca.crt -noout -subject -dates

プロファイルがファイルを指すのではなく証明書をインライン ブロックとして埋め込んでいる場合、ディスク上の別のファイルはクライアントが使っているものより古いか新しい可能性があります。そのため、エラーをファイルと突き合わせるにはディレクトリ一覧ではなくプロファイルを読む必要があります。

発行者を通じて更新する

クライアント証明書は発行した人が置き換えるものであり、アカウントのパスワードをリセットしても何も更新されません。仕事用の接続では組織が公開している更新チャネルを使ってください。ホスト型サービスの場合は、新しいプロファイルを含むと主張する添付ファイルを開くのではなく、検証済みのアドレスからプロバイダーのポータルにサインインしてください。求めていないバンドルは、ファイル名に VPN と書いてあるからといって信頼できるわけではありません。

サーバーを運用している場合は、素材を交換する前に公開情報と発行記録を確認してください。CA の変更はそれを信頼するすべてのクライアントに影響します。

一つの ID を更新するために信頼階層を置き換える必要はないはずです。期限切れのリーフを 一つ直すために新しい CA を提案する人がいたら、まず古い CA に何が依存しているかを尋ねてください。 RFC 5280 の有効性とパスの規則が、双方が従っているモデルです。

クライアントに置き換えを使わせる

ファイルをダウンロードすることは、それをインポートすることではありません。実際に選択している接続エントリを確認し、上書きを忘れた外部の証明書パスをプロファイルが参照していないか確認してください。

新しいエントリが接続するまで古いエントリを表示したままにし、その後で削除して、誰も習慣で期限切れのプロファイルを選ばないようにしてください。再接続して、特定の期限切れエラーが消えたことを確認します。

別の TLS エラーが残っている場合は、検証設定を弱めて通過させるのではなく、新しい問題として扱ってください。更新が成功した後のアカウント拒否やルートの欠落は、別の修正を要する別の障害です。

関連記事