こんにちは、サイオステクノロジーの有村です。
WebサイトをHTTPS化する際は、「SSL証明書」、「TLS証明書」あるいは「サーバー証明書」と呼ばれる証明書を使用します。
一方、SAMLによるシングルサインオンを構築する際の IdP(Identity Provider)やSP(Service Provider)の設定でも「証明書」が登場します。
どちらもX.509証明書であるため、
- SAMLでもWebサーバーと同じ、なんらかの機関から発行された公的な証明書を用意すべきなのでは?
- 自己署名証明書は通常ブラウザで警告が出るのだから、SAMLでも使ってはいけないのでは?
- 証明書の有効期限が近づいたら、Webサーバーと同じようにすぐ更新しなければいけないのでは?
と考えてしまうと思われます。
しかし、WebサイトのHTTPS通信で使用する証明書と、SAMLで署名や暗号化に使用する証明書では、同じX.509証明書でも役割と信頼の確認方法が大きく異なります。
特に最近では、Webで利用される公的なTLSサーバー証明書の有効期間がさらに短縮されることが決まっています。
これはWeb PKIの安全性という観点では重要な変化ですが、同じ証明書なのでSAMLの署名証明書まで短期間で更新する運用にする必要があるのでしょうか。
この記事では下記について説明します。
- WebのTLS証明書では何を信頼しているのか
- SAMLの署名証明書では何を信頼しているのか
- 公的証明書の有効期間短縮に対してSAMLではどう考えるべきか
- 認証フェデレーションで利用するときの注意点
そもそも「証明書」とは
最初に、今回扱う証明書について簡単に整理します。
一般的なX.509証明書には、公開鍵のほか、
- 対象(Subject)
- 発行者(Issuer)
- Serial Number
- 有効期間
- 公開鍵
- 署名アルゴリズム
- 各種Extension
などの情報が含まれます。
秘密鍵と公開鍵はペアになっており、秘密鍵は所有者のみが保持します。
HTTPSでもSAMLでも、この公開鍵暗号の仕組みを利用しているという点では共通しています。
しかし 「その証明書を、誰が、どのような理由で信頼するのか」 が異なります。
WebのTLS証明書では何を確認しているのか
ブラウザで次のURLへアクセスするとします。
https://www.example.com/
WebサーバーはHTTPS通信によりTLSプロトコルを開始する際、自身のサーバー証明書をブラウザへ提示します。
しかし、ブラウザは受け取った証明書を無条件に信用するわけではありません。
簡略化すると、次の図のような関係になっています。

ブラウザやOSには、あらかじめ信頼するルートCA(認証局)の証明書、つまりルート証明書が登録されています。
ルート証明書のリストは、OSやブラウザのベンダー等が定める厳格な基準や審査に基づき、信頼の起点として登録され、OS等の仕組みにより定期的に更新されます。
Webサーバーから提示された証明書について、下記のように証明書チェーンをたどり、最終的にブラウザが信頼している認証局へ到達できるかを確認します。

それだけではありません。
例えば、
- 証明書の期間は有効か
- アクセスしているホスト名と証明書のSANが一致するか
- 証明書チェーンを正しく検証できるか
なども確認します。
これによって利用者はブラウザにより間接的に、自分がアクセスしているドメインは、第三者である認証局によって現在も確認されているドメインであると判断できます。
つまり、公開Webサイトの場合、 ブラウザとWebサーバーは事前に直接の信頼関係を持っていない状況で、世界中の不特定多数の利用者が、初めてアクセスしてもWebサーバーを検証できるようにするため、両者の間に認証局という第三者が必要になるのです。
これが一般的なWeb PKIの考え方です。
SAMLの署名証明書では何を確認しているのか
ではSAMLではどうでしょうか。
SAMLによるシングルサインオンでは、例えばIdPで利用者を認証した後、IdPからSPへSAML Responseが送信されます。
非常に単純化すると、次の図の流れになります。

IdPは自身が保持する秘密鍵を使用してSAML ResponseやAssertionへ署名します。
SPは対応する公開鍵を利用して、その署名が正しいことを検証します。
SAMLでは、IdPとSPの情報をSAMLメタデータによってあらかじめ共有できます。
IdPのメタデータには、たとえば署名検証に使用する証明書が登録されています。
概念としては次のようになります。

つまりSPは、この証明書が公的認証局から発行されているから信頼するのではなく、信頼するメタデータにすでに登録されているIdPの鍵だから、この鍵を署名検証に使用するという形で信頼関係を構築します。
ここがTLSとSAMLの非常に大きな違いです。
公的なTLS証明書の有効期間は短くなっている
この違いが今後さらに重要になる理由があります。
前述した通り、Webで使用される公的TLS証明書の有効期間は、長期的に短縮されていきます。
CA/Browser ForumのBaseline Requirementsでは次のスケジュールになっています。
| 発行日 | 最大有効期間(日数) |
| 2026年3月15日より前 | 398 |
| 2026年3月15日以降 | 200 |
| 2027年3月15日以降 | 100 |
| 2029年3月15日以降 | 47 |
2026年8月時点ですでに最大200日の期間に入っています。
2029年以降は47日となります。
このように証明書の有効期間が短くなれば、Webサーバーの証明書を人間が毎回手作業で取得し、設定ファイルを書き換えてサービスを再起動するという運用は現実的ではなくなっていきます。
そのため、WebサーバーについてはACMEなどを利用した証明書更新の自動化が重要になります。
一方でこれと同じ公的証明書をSAMLメタデータ用の証明書として利用するとどうなるでしょうか。
多くのSPでは認証フェデレーションが関連し、最終的に数十日ごとに下記の運用が必要になります。

Webサーバー内で完結する証明書更新と異なり、自組織だけで変更が完結しません。
そのため、Webサーバーと同じ感覚で証明書を選ぶことが、かえって運用上のリスクになる可能性があります。
フェデレーションもSAML Metadata用証明書では自己署名証明書への移行を案内
この問題は、フェデレーションを運営する組織からもすでに案内が始まっています。
例としてNIIはWebサーバー用証明書はブラウザで検証されるため有効期間短縮の影響を受け、ACMEによる自動更新が現実的である一方、SAMLメタデータ用証明書については、高頻度で証明書を発行して学認申請システムから変更申請することは非現実的であり、現状では自動化も難しく、失敗時のリスクが大きいと整理しています。
2025_UPKIキャラバン_サーバ証明書有効期間短縮とその対応
その対応として、自己署名証明書への移行を検討するよう案内されています。
これは今回説明してきたTLSとSAMLの信頼モデルの違いを考えると頷けるものと思います。
Web用証明書については下記の方向へ向かいます。

一方、SAML署名用証明書については下記の組み合わせになります。

同じサーバー上で利用する証明書であっても、用途に応じて異なる証明書を別々に管理するという考え方です。
自己署名証明書は「自分で自分を信用している」から使えるわけではない

証明書を更新するときの注意
- 新しい証明書を準備する
- メタデータへ旧証明書と平行して新しい証明書を登録する
- 連携先へ新しいメタデータが反映されたことを確認する(推奨された期間待機する)
- IdP側で使用する証明書を新証明書のみに切り替える
まとめ
- TLS証明書とSAML署名証明書は、どちらもX.509証明書を使用する
- Web(公開TLS証明書)では、不特定多数の利用者がサーバーを検証するために公的CAを利用する
- SAMLでは、メタデータなどによって連携相手の公開鍵をあらかじめ共有できる
- このためSAML署名証明書では、公的CAによる証明書が必須とは限らない
- 公開TLS証明書の最大有効期間は今後さらに短縮され、2029年には47日となる
- フェデレーション機関もSAML用証明書について自己署名証明書への移行を検討するよう案内を開始している
- 自己署名証明書にしても鍵更新は必要であり、メタデータを利用した適切なロールオーバーが重要

