IdP Key Rollover
メタデータ記載の証明書更新手順(IdP)
※ SPのメタデータ記載証明書更新の手順については次のページをご参照ください。
⇒メタデータ記載の証明書更新手順(SP)
目次:
IdPの証明書更新手順:
サーバ証明書の有効期限が切れる場合の新しい証明書への切り替え手順をご紹介します。ポイントは、メタデータ上の記載変更とIdP/SPの設定変更の間にタイムラグを置いて、メタデータ伝播中にもIdP/SPが利用できない期間が発生しないようにしているところです。以下の記述は学認ウェブサイトの技術ガイドに従って構築した場合の記述です。そうでない場合は適宜読み替えてください。
この手順の肝は、IdPの設定を新証明書にする前に新証明書を広報しておくことで、いざ新証明書を使い始めた場合に各SPがIdPの正当な証明書であると正しく認識できることです。
この手順を始める際にすでに学認申請システム上で予備の証明書が登録されている場合は、必ず現在IdPがどちらの証明書を使う設定になっているか確認してください。idp.propertiesに記載されているファイル(通常server.crtおよびserver.key)を確認すればよいです。
確認できましたら下記「学認申請システムにて証明書を追加(予備の欄に)」の手順では、入力する場所によらず、またどちらの証明書が新しいか/古いかによらず、IdPで使う設定になっている証明書を残し、使う設定になっていない証明書の欄のほうを上書きして新しい証明書を登録するようにしてください。
証明書については、多くの場合そして多くの時間Webサーバ(Apache)およびShibboleth IdPの双方で同じものを使用することになります。ただし本手順のようにごく短期間別のものを使用する必要がありますのでそれぞれ必要な場所に証明書ファイルと秘密鍵をコピーしてください。
万が一同じ証明書・鍵ファイルをApacheおよびShibboleth IdPで参照している場合はコピーしてから本手順を始めてください。そうでなければApacheの証明書更新のつもりがShibboleth IdPの証明書も更新することになり、認証連携エラーを引き起こす原因となります。
それぞれの設定ファイルおよび本手順で想定しているパスを示します:
Apache
設定が記述されているファイル: /etc/httpd/conf.d/ssl.conf
証明書ファイルパス: /etc/pki/tls/certs/server.crt
秘密鍵ファイルパス: /etc/pki/tls/private/server.key
Shibboleth IdP
設定が記述されているファイル: /opt/shibboleth-idp/conf/idp.properties
証明書ファイルパス: /opt/shibboleth-idp/credentials/server.crt
秘密鍵ファイルパス: /opt/shibboleth-idp/credentials/server.key
SpringerLinkと連携している場合、IdPが有効期限切れの証明書をアサーションの署名に使っているとエラーになることが確認されていますので、証明書の有効期限内にメタデータ記載の証明書更新手順(IdP)の手順に従って証明書を更新するようご注意ください。
⇒SpringerLinkに関する情報
Nature Research(nature.com)と連携している場合、上記SpringerLinkと同じく有効期限の制約があるという情報があります。こちらに関して、何か情報をお持ちの方は是非学認事務局までお知らせください。
サーバ証明書の有効期限については、Apacheに対して設定する証明書については有効期限切れにならないようご注意ください。
加えて上記SpringerLinkのほか、WebExやBoxなど学認参加SP以外のSPにてメタデータ記載証明書の有効期限がチェックされる例がみられるようです。「X+15日目」が有効期限を越える場合は、これを伝播期間も考慮した上で短縮し「IdPに対して証明書の更新」が有効期限を越えないようにご注意ください。有効期限をチェックするSPについて学認で認識しているものは以下にまとめております。有益な情報等ありましたら事務局までお知らせください。
⇒個々のソフトウェア/サービスのシボレス対応状況
この証明書を暗号化にも使用している場合にはこの手順の限りではありません。特殊なSPと連携していてIdPへ送信されるデータを暗号化していることが確かな場合には、下記手順を修正してSPと同様の手順を取り、IdPへの証明書追加設定については conf/credentials.xml のコメントを参照してしかるべき変更を行ってください。
例えば、(Shibboleth SPからのSP-initiatedな)Single Logout (SLO)を使っている場合、NameIDが暗号化される場合があるようですので、上記のような対応を行う必要があります。
テンプレート外メタデータをお使いの場合、特に use="signing" / use="encryption" を指定している場合は学認申請システムのフォームでの証明書追加・更新では期待する状態にならない場合がございます。お手数ですがアップロードいただいたメタデータを手で編集いただき、再度アップロードしてください。
1日目 更新用証明書発行
鍵およびCSR生成、申請、証明書受領
(詳細は各機関の登録担当者に確認のこと)
<証明書取得>
1日目 Apacheに対して証明書の更新(※1)
1日目 学認申請システムにて証明書を追加(予備の欄に)
<承認待ち>
X日目 承認、学認メタデータに反映
<公開されているメタデータに新証明書が追加される>
<メタデータ伝播待ち>
X+15日目 attrviewer13でSAML1のテスト(運用フェデレーションに参加している場合)(※4)
X+15日目 IdPに対して証明書の更新(※2)
X+15日目 再びattrviewer13でSAML1のテスト(運用フェデレーションに参加している場合)(※4)
X+15日目 問題がなければ,学認申請システムから古い証明書を削除
(ついでに、新しい証明書を予備の欄から移動)
<承認待ち>
Y日目 承認、学認メタデータに反映
<公開されているメタデータから旧証明書が削除される>
<attrviewer13へのメタデータ伝播待ち>
Y+1日目 最後にattrviewer13でSAML1のテスト(運用フェデレーションに参加している場合)(※4)
「X日目」「Y日目」について:
人手によるチェックを挟むため、変更申請から承認までには数日を要します。1回目の変更申請の承認日をX日目、2回目の変更申請の承認日をY日目と表現しています。X≧1, Y≧X+15 です。
要する日数は、繁忙期か閑散期かにもよりますが、2営業日〜1週間を目安にしていただければと思います。
※1「Apacheに対して証明書の更新」の手順
1. /etc/pki/tls/private/server.key
/etc/pki/tls/certs/server.crt
を新証明書のもので上書きする
参考:サーバ証明書の設定(IdPv4)
2. httpdを再起動する