サーバ証明書の取得とApacheの設定(★)
1.「UPKIオープンドメイン証明書自動発行検証プロジェクト」の利用の手引における加入者編をご覧いただき、サーバ証明書を申請します。機関の審査手続きによっては証明書の交付までには数日を要する場合がありますので、お早めに申請してください。
接続実験をするだけであれば、IdPインストール時に作成された証明書(自己署名証明書)をそのまま利用してテストフェデレーションに参加することも可能です。その場合は、以降の記述のうち「中間CA証明書」の部分は無視してください。
実習セミナー
・証明書は、初期設定で「/root/GETFILE」に取得したファイルを使用します。
サーバ証明書:server.crt
秘密鍵:server.key
中間CA証明書:server-chain.crt
上記ファイルを使用して、以降の設定(ssl.conf、relying-party.xml)を
行ってください。
2.入手したサーバ証明書をもとに、以下のファイルに設定してください。(★)
■/etc/httpd/conf.d/ssl.conf(★)
実習セミナー
・各証明書と秘密鍵を「/root/GETFILE」配下よりコピーしてください。
# cp /root/GETFILE/server{,-chain}.crt /etc/pki/tls/certs/
# cp /root/GETFILE/server.key /etc/pki/tls/private/
/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 編を参照してください。
■/opt/shibboleth-idp/conf/relying-party.xml(★)
参照先ディレクトリ(/opt/shibboleth-idp/credentials)に、サーバ証明書と秘密鍵をコピーしてください。(★)
実習セミナー
・サーバ証明書と秘密鍵を「/root/GETFILE」配下よりコピーしてください。
# cp /root/GETFILE/server.crt /opt/shibboleth-idp/credentials/
# cp /root/GETFILE/server.key /opt/shibboleth-idp/credentials/
/opt/shibboleth-idp/conf/relying-party.xml を以下のように編集してください。(★)
<security:Credential id="IdPCredential" xsi:type="security:X509Filesystem">
<security:PrivateKey>/opt/shibboleth-idp/credentials/server.key</security:PrivateKey>
↑ ssl.confと同一のものを上記のパスにも格納 <security:Certificate>/opt/shibboleth-idp/credentials/server.crt</security:Certificate>
↑ ssl.confと同一のものを上記のパスにも格納</security:Credential>
(省略)
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
メタデータの作成と提出(★)
実習セミナー
・メタデータテンプレートは、初期設定で「/root/GETFILE」に取得したidp-metadata.xmlを使用します。rootのホームディレクトリに「"ドメインなしホスト名".xml」のファイル名でコピーします。
例)1番を割り振られた場合
ホスト名:ex-idp-test01.ecloud.nii.ac.jpとなり、ファイル名:ex-idp-test01.xmlです。
以下のコマンドでファイルをコピーします。
# cp /root/GETFILE/idp-metadata.xml /root/ex-idp-test01.xml
コピー後、IdPメタデータテンプレートを参考に必要な項目を変更します。
(証明書部分には、/opt/shibboleth-idp/credentials/server.crtの内容を使用します。)
実習セミナー
・作成したメタデータは学認申請システムではなく、実習セミナー内のDSサーバに転送します。
以下は、転送コマンドの例です。
メタデータファイル名を各自のファイル名に変更して実行してください。
例)ホスト名:ex-idp-test01.ecloud.nii.ac.jpの場合
# scp /root/ex-idp-test01.xml test@ex-ds.ecloud.nii.ac.jp:METADATA
転送したメタデータは、1分周期で他のメタデータとマージ処理を行い、実習セミナー内のフェデレーションメタデータが更新されます。
※1分周期で行う為、最大約1分登録までに時間がかかります。
Back-Channelの設定
Shib1.3のSPにも接続する場合は、IdPとの通信時にTLS接続を行うため、下記にしたがいBack-Channelの設定を行ってください。 このTLS接続ではポート8443を利用します。
実習セミナー
・実習セミナーではShibboleth SPバージョン1.3は対象としていないため以下の設定は不要です。
1.キーストアの設定
サーバ証明書およびCA証明書を格納したキーストアを作成します。
サーバ証明書としてUPKIの証明書をご利用の場合は、
CA証明書: Security Communication RootCA1 Repositoryの中程にあるSCRoot1ca.cer
中間CA証明書: オープンドメイン認証局2リポジトリの中程にあるnii-odca2.crt
をダウンロードして設定してください。
# cd /opt/shibboleth-idp/credentials # keytool -importcert -trustcacerts -alias ca -keystore keystore.jks \ -storetype jks -file CA証明書.crt -storepass キーストアパスワード # keytool -importcert -trustcacerts -alias interca -keystore keystore.jks \ -storetype jks -file 中間CA証明書.crt -storepass キーストアパスワード # openssl pkcs12 -export -out pkcs12.p12 -in サーバ証明書.crt -inkey サーバ秘密鍵.key -name サーバ名 (ここで聞かれるエクスポートパスワードにはキーストアパスワードと同じものを指定してください) # keytool -importkeystore -srckeystore pkcs12.p12 -destkeystore keystore.jks \ -srcstoretype pkcs12 -deststoretype jks -srcalias サーバ名 -destalias サーバ名 \ -storepass キーストアパスワード
2.ライブラリのコピー
https://build.shibboleth.net/nexus/content/repositories/releases/edu/internet2/middleware/security/tomcat6/tomcat6-dta-ssl/1.0.0/tomcat6-dta-ssl-1.0.0.jarよりダウンロードします。
tomcat6-dta-ssl-1.0.0.jarを$CATALINA_HOME/lib配下にコピーします。
# wget https://build.shibboleth.net/nexus/content/repositories/releases/edu/internet2/middleware/security/tomcat6/tomcat6-dta-ssl/1.0.0/tomcat6-dta-ssl-1.0.0.jar
# cp tomcat6-dta-ssl-1.0.0.jar $CATALINA_HOME/lib
ダウンロードされるJARファイルのSHA-256ハッシュ値は以下の通りです。さらに真正性を確認したい場合はPGP署名をご利用ください。# sha256sum tomcat6-dta-ssl-1.0.0.jar
20d82d71cf9fc86197dd1c4c5dae3899efbf00e0706bbfe4d26618b56788d219 tomcat6-dta-ssl-1.0.0.jar
3.SOAP設定
$CATALINA_BASE/conf/server.xml ファイルに以下を追加します。
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Protocol"
SSLImplementation="edu.internet2.middleware.security.tomcat6.DelegateToApplicationJSSEImplementation"
scheme="https"
SSLEnabled="true"
clientAuth="want"
keystoreFile="/opt/shibboleth-idp/credentials/keystore.jks"
keystorePass="キーストアパスワード" />