サーバ証明書の設定(IdPv4)
サーバ証明書の取得とApacheの設定
1.「UPKI電子証明書発行サービス」の利用管理者編をご覧いただき、サーバ証明書発行を申請します。機関の審査手続きによっては証明書の交付までには数日を要する場合がありますので、お早めに申請してください。
接続実験をするだけであれば、IdPインストール時に作成された証明書(自己署名証明書)をそのまま利用してテストフェデレーションに参加することも可能です。その場合は、以降の記述のうち「中間CA証明書」の部分は無視してください。
2.入手したサーバ証明書をもとに、以下のファイルに設定してください。
■/etc/httpd/conf.d/ssl.conf
まず、秘密鍵を"root"ユーザのみが参照できるようにアクセス制限がかかっているか確認してください。確認できない場合は以下のようにして所有者・グループ・パーミッションを設定してください。
chown root:root /etc/pki/tls/private/server.key ← 秘密鍵の格納先chmod 400 /etc/pki/tls/private/server.key
/etc/httpd/conf.d/ssl.conf を以下のように編集してください。
(省略)SSLCertificateFile /etc/pki/tls/certs/server.crt ← サーバ証明書の格納先
(省略)SSLCertificateKeyFile /etc/pki/tls/private/server.key ← 秘密鍵の格納先
(省略)SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt ← 中間CA証明書の格納先
↑ 先頭の「#」を削除して、コメントを解除してください。
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
詳しくは、サーバ証明書インストールマニュアルの Apache 2 + mod_ssl 編を参照してください。
メタデータの作成と提出
Back-Channelの設定
SAML 1のSPにも接続する場合は、IdPとの通信時にTLS接続を行うため、下記にしたがいBack-Channelの設定を行ってください。 このTLS接続ではポート8443を利用します。
1.キーストアの設定
サーバ証明書を格納したキーストアを作成します。
# cd /opt/shibboleth-idp/credentials# UMASKORIG="`umask`" ; umask 0077# openssl pkcs12 -export -out server.p12 -in サーバ証明書.crt -inkey サーバ秘密鍵.key -name サーバ名
(ここで聞かれるエクスポートパスワードを後述のidp-backchannel.iniの「P12パスワード」に指定します。任意のものを設定できます)
# umask "$UMASKORIG"(上記一連のumaskコマンドは"chmod 600 server.p12"と同義)
Jettyを"jetty"ユーザで実行する場合は、さらに以下のコマンドを実行しJettyが読み取れるようにします。
# chgrp jetty /opt/shibboleth-idp/credentials/server.p12# chmod g+r /opt/shibboleth-idp/credentials/server.p12
2.ライブラリのコピー
https://build.shibboleth.net/nexus/content/repositories/releases/net/shibboleth/utilities/jetty9/jetty94-dta-ssl/1.0.0/jetty94-dta-ssl-1.0.0.jar よりダウンロードします。
jetty94-dta-ssl-1.0.0.jar を /opt/jetty-base/lib/ext 配下にコピーします。
# wget https://build.shibboleth.net/nexus/content/repositories/releases/net/shibboleth/utilities/jetty9/jetty94-dta-ssl/1.0.0/jetty94-dta-ssl-1.0.0.jar# cp jetty94-dta-ssl-1.0.0.jar /opt/jetty-base/lib/ext
ダウンロードされるJARファイルのSHA-256ハッシュ値は以下の通りです。さらに真正性を確認したい場合はPGP署名をご利用ください。# sha256sum jetty94-dta-ssl-1.0.0.jar5e5de66e3517d30ff19ef66cf7a4aa5443b861d83e36a75e85845b007a03afbf jetty94-dta-ssl-1.0.0.jar
なお、配置したファイルはデフォルトでは使用されません。すでに /opt/jetty-base/lib/ext 配下に存在する jetty9-dta-ssl-1.0.0.jar が使用されます。併存していても問題ありません。もしデフォルトの設定で問題がある場合は(一部の証明書で問題になるという情報があります)、etc/idp-backchannel.xml の以下の部分を修正し新しいライブラリを使用するようにしてください。
@@ -6,7 +6,7 @@
<!-- and no container trust (delegate to application) -->
<!-- for backchannel (SOAP) communication to IdP -->
<!-- ============================================================= -->
- <New id="shibContextFactory" class="net.shibboleth.utilities.jetty9.DelegateToApplicationSslContextFactory">
+ <New id="shibContextFactory" class="net.shibboleth.utilities.jetty94.DelegateToApplicationSslContextFactory">
<Set name="KeyStorePath"><Property name="idp.backchannel.keyStorePath" default="../credentials/idp-backchannel.p12" /></Set>
<Set name="KeyStoreType"><Property name="idp.backchannel.keyStoreType" default="PKCS12" /></Set>
<Set name="KeyStorePassword"><Property name="idp.backchannel.keyStorePassword" default="changeit" /></Set>3.SOAP設定
/opt/jetty-base/start.d/idp-backchannel.ini ファイルを以下のように作成します。
# cd /opt/jetty-base/start.d# cp idp-backchannel.ini.dist idp-backchannel.ini# chgrp jetty idp-backchannel.ini# chmod 640 idp-backchannel.ini
/opt/jetty-base/start.d/idp-backchannel.ini ファイルを以下のように修正します。
# --------------------------------------- # Module: idp-backchannel# Shibboleth IdP Dedicated SOAP Connector# --------------------------------------- --module=idp-backchannel
## Backchannel connector port to listen on# idp.backchannel.port=8443
↑コメントアウト(#)を削除。以下同様## Backchannel keystore file path (relative to $jetty.base)# idp.backchannel.keyStorePath=../shibboleth-idp/credentials/server.p12
## Backchannel keystore password# idp.backchannel.keyStorePassword=P12パスワード
## Backchannel keystore type# idp.backchannel.keyStoreType=PKCS12