X.509 証明書とは?解説
X.509 証明書は、公開鍵をアイデンティティに結びつける標準形式で、信頼できるものにするために認証局によって署名されます。
X.509 は TLS を、したがって HTTPS を支える証明書形式です。あらゆる安全な Web サイトは X.509 証明書を提示し、同じ標準がクライアント証明書やサービスのアイデンティティにも使われます。公開鍵、それが誰に属するかの情報、有効期間、そして CA 署名をパッケージ化します。これが、一度も出会ったことのないサーバーをクライアントが信頼できるようにするまとまりです。
X.509 証明書とは何か
X.509 証明書は、公開鍵、その subject のアイデンティティ、issuer(CA)、有効期間、そしてそのすべてに対する CA の署名を含む構造化された文書です。署名こそが、アイデンティティと鍵の結びつきを単なる主張ではなく信頼できるものにするものです。
主要なフィールド
重要なフィールドには、subject(証明書が誰のためか)、subject alternative names(それが有効なホスト名)、issuer、not-before と not-after の日付、そして公開鍵そのものが含まれます。TLS 検証は、ホスト名が SAN と一致し、日付が現在有効であることをチェックします。
どのように保存されるか
X.509 証明書は通常、PEM(BEGIN/END マーカー付きの base64 テキスト)または DER(生のバイナリ)の形式で保存されます。PEM は config や secret を通じてよく移動する、一般的でテキストに優しい選択肢であり、だからこそ証明書を PEM ブロックとして頻繁に目にします。
CI における X.509 証明書
CI は job が TLS を使うたびに X.509 証明書に出会います。データベースへの接続、HTTPS API の呼び出し、または相互 TLS のためのクライアント証明書の提示などです。2 つの古典的な失敗は、期限切れの証明書と、証明書に一致しないホスト名で、どちらも job ログに TLS エラーとして現れます。
# Inspect a certificate during CI debugging
steps:
- run: openssl x509 -in server.pem -noout -subject -datesLatchkey に関する注記
Latchkey runner からの TLS 接続は、標準の trust store に対して X.509 証明書を検証します。相互 TLS では、任意の標準 runner と同じように、クライアント証明書を secret として供給し job 内のファイルに書き込みます。
重要なポイント
- X.509 証明書は公開鍵をアイデンティティに、有効期間と CA 署名とともに結びつけます。
- 主要なフィールドには subject、subject alternative names(ホスト名)、issuer、有効期日が含まれます。
- CI はあらゆる TLS 接続で X.509 証明書に出会います。有効期限切れとホスト名の不一致がよくある失敗です。