This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Child pages
  • 1.1.3.3.1. 証明書プロパティ・ファイル・レルム
Skip to end of metadata
Go to start of metadata

このレルムの種類はユーザーのWebアプリケーションに対する認証を構成するために使用します。そのために、まずGeronimoがカスタムSSLリスナーを使用するように構成する必要があります。また、SSLキーとキー・ストアを構成する必要もあります。以下のセクションではこれらのモジュールのそれぞれを構成する方法を、順を追って説明します。

キー・ストアと証明書の作成

当構成のためには、まず新規にキー・ストアとプライベート・キーと証明要求(CSR)を作成し、次にCAからの応答をインポートします。

すでに「1.1.3.1. 証明書の管理」のセクションでキー・ストアとプライベート・キーの作成方法は述べましたので、このセクションではCSRを生成しCAから応答をインポートする方法を述べ、全体を明らかにします。

Geronimoのキー・ストアは <geronimo_home>\var\security\keystores ディレクトリーに格納されており、デフォルトのキー・ストアであるgeronimo-defaultが導入時に提供されています。今回は新規にキー・ストアを作成してみます。

Geronimoの管理コンソールから Keystores をクリックして Keystore Configuration ポートレットにアクセスします。

New Keystore をクリックし、新しいキー・ストアの名前とパスワードを指定後、 Create Keystore をクリックしてください。この例では各々My_Keystoreとpasswordを使います。

今しがた作成したキー・ストア・ファイルをクリックし、適切なリンクをクリックしてプライベート・キーを作成します。

適切なデータを入力のうえ、 Review Key Data をクリックしてください。

値が正しいことを確認したら Generate Key をクリックします。

新規にプライベート・キーを作成した直後は、このキーは自動的にロックされています。つまり、参照か削除しかできません。Certificate Signing Request (CSR)を作成するにはキーのロックを解除する必要があります。そのためには、Return to keystore list をクリックしてください。

プライベート・キーをアンロックするために をクリックします。当該キー・ストアとプライベート・キー用のパスワードを求めるプロンプトが表示されます。

Unlock Keystore をクリックします。

証明要求(CSR)の作成とCA応答のインポート

プライベート・キーをアンロックしたので続いてCSRを作成します。Keystore Configuration ポートレットで作成したキー・ストアをクリックし、現在の中身を表示します。この例ではプライベート・キーはひとつだけです。 view または現在のプライベート・キーに該当するリンクをクリックし、詳細と追加のアクションを表示します。

Generate CSR をクリックすると、下記に示されているように証明要求が表示されるはずです。

これは PKCS10 の証明要求です。このテキストをコピーして、CAに送付するためにフラット・テキストに貼り付けます。

csr.txt
-----BEGIN CERTIFICATE REQUEST-----
MIIBqDCCARECAQAwajESMBAGA1UEAxMJbG9jYWxob3N0MREwDwYDVQQLEwhHZXJvbmltbz
EPMA0GA1UEChMGQXBhY2hlMRAwDgYDVQQHDAdNeV9DaXR5MREwDwYDVQQIDAhNeV9TdGF0
ZTELMAkGA1UEBhMCQ0MwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANTOM2j05ACU4N
49B4l51oxFSQX1SaX2+MBCWEpMILWriYxpBYRukMjyOOLBqreyUj6nv64j0qm1HgnOeYER
2fRtk6ERBGGRG//HprVBZzXFV5T/kwB4Ocg8NKQFWibLtT9MSjQyYBy0NGRgGL8krn+LDL
/YucueG+NbPfDzKD4xAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAp0g6oJ2WLllBmXpCnbcd
iyHtWAtFCODRKJaTzC09N+/0s+BugiGOxTGLB65C0xbIeumSog8Yxy26LFTtcvIP1lC7wg
V1e1KaJBTuuop7jOYFo4Tpx3oCL7ZJ6BtHrx0vSNlOdnkY6y+ZUPmQcWJq6lLP85NWu9N5
B94KI7U/QpM=
-----END CERTIFICATE REQUEST-----

Back をクリックすればprivate key details ポートレットに戻れます。

この例では独自に自分で作ったCAを使いますので、このテストでは自分で自分の証明書に署名でき、標準的な手順を変更する必要はありません。もし貴方がCSRをCAに送付した場合は、CAは、CAによって署名された内容を含むファイルを別途返送してくるはずです。

csr_ca_reply.txt
-----BEGIN CERTIFICATE-----
MIICNTCCAaCgAwIBAgICK2gwCwYJKoZIhvcNAQEEMFoxDTALBgNVBAMTBFRlc3QxDzANBgNVBAsT
BkFwYWNoZTERMA8GA1UEChMIR2Vyb25pbW8xCzAJBgNVBAcTAkxMMQswCQYDVQQIEwJTVDELMAkG
A1UEBhMCTEswHhcNMDcwMjAyMTgwMDAwWhcNMDgwMjAyMTgwMDAwWjBqMRIwEAYDVQQDEwlsb2Nh
bGhvc3QxETAPBgNVBAsTCEdlcm9uaW1vMQ8wDQYDVQQKEwZBcGFjaGUxEDAOBgNVBAcMB015X0Np
dHkxETAPBgNVBAgMCE15X1N0YXRlMQswCQYDVQQGEwJDQzCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
gYkCgYEA1M4zaPTkAJTg3j0HiXnWjEVJBfVJpfb4wEJYSkwgtauJjGkFhG6QyPI44sGqt7JSPqe/
riPSqbUeCc55gRHZ9G2ToREEYZEb/8emtUFnNcVXlP+TAHg5yDw0pAVaJsu1P0xKNDJgHLQ0ZGAY
vySuf4sMv9i5y54b41s98PMoPjECAwEAATALBgkqhkiG9w0BAQQDgYEAIzCUma53tO60YNNltFvr
lyj9MbEIHYZlifFXmF69NkGis3l8k5CKhYoqMqraKsOtBPT5+0gqEU/hg1bjQZXDKKWEd+4xCbRW
btdY/5KPW5iqEKqPDZupE2a3/MojdJ4F6XgevzZoIMdry67leaRFVquKEc9nkpixfMGmM2u1IX8=
-----END CERTIFICATE-----

private key detailsポートレットから Import CA reply をクリックします。証明応答ウインドウで事前に埋まっているテキストはすべて削除して、CAからの応答ファイルのテキストを貼り付けてから Save をクリックします。

CAからの応答を保管すると、証明書が別の Issuer になっていることに気が付かれることでしょう。Back to keystore をクリックして、次に Return to keystore list をクリックしてください。

信頼された証明書のインポート

クライアント認証を有効にするには貴方のCSRが信頼された証明書であると署名済のCAをインポートする必要があり、この処理は一度だけ行います。そのCAは、署名済のCSRをCA自身とは別の証明書として提供しなくてはなりません。この例では自己証明書を使いますので、以下のようにCA証明書を生成しました。

My_Own_CA_Certificate.txt
-----BEGIN CERTIFICATE-----
MIICJTCCAZCgAwIBAgICK2cwCwYJKoZIhvcNAQEEMFoxDTALBgNVBAMTBFRlc3QxDzANBgNVBAsT
BkFwYWNoZTERMA8GA1UEChMIR2Vyb25pbW8xCzAJBgNVBAcTAkxMMQswCQYDVQQIEwJTVDELMAkG
A1UEBhMCTEswHhcNMDcwMjAyMTgwMDAwWhcNMDgwMjAyMTgwMDAwWjBaMQ0wCwYDVQQDEwRUZXN0
MQ8wDQYDVQQLEwZBcGFjaGUxETAPBgNVBAoTCEdlcm9uaW1vMQswCQYDVQQHEwJMTDELMAkGA1UE
CBMCU1QxCzAJBgNVBAYTAkxLMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCUZl1e1eTKLoh0
15vfYqqvhk6Iviva7BWQxZ6mOV9Ye2mii37Btmxajnngz0jKfiwHKqWRQBp6CUzbd9gfZrz2go9g
TwsUBWQwSf6iVypKX1q0Y4WhtTwLcEx78Lx5XN1YCqk34pn4by26SJiHdugs7/ClOiIlcpCt9QVa
Q9BH7wIDAQABMAsGCSqGSIb3DQEBBAOBgQAnmoT/dLvJa7jGstvZJLrsWtMwWQNVJ1ZQmbrDGq9u
oFnkAH1mGHIDbaz2avy/wotHJUIysGBlDP0btk5GVskl45EG/feWHLgCVmqwf3NkdRdLl+CznBBJ
KCC5tINbcI6GqXsbO8hhjIrOGweNyV1653WEvZiQVuMYaHTnGNx+RA==
-----END CERTIFICATE-----

Keystore Configurationポートレットで貴方の作成したキー・ストア・ファイルをクリックし、次に Add Trust Certificate をクリックします。 Trusted Certificate ウインドウに事前に含まれていた中身はすべて削除して、CA証明書からの内容を貼り付けた後、その証明書に別名を追加します。

Review Certificate をクリックして、それから Import Certificate をクリックします。今インポートしたばかりの信頼された証明書が見えるはずです。

クライアント認証を使用するHTTPリスナーへの追加

Apache Geronimoには事前にポート8443でHTTPSリスナーが定義済ですが、クライアント認証要用には構成されていません。この例では新規にHTTPSリスナーを追加し、前のステップで作成してインポートした証明書を使ってクライアント認証を要求するように構成を行います。

この例ではGeronimoのTomcatディストリビューションを使います。Jettyディストリビューションを使う場合でも手順は同じですが、名前やリンクが若干異なっているかもしれませんのでご注意ください。

Geronimo管理コンソールから Web Server をクリックしNetwork Listenerポートレットにアクセスします。

Network Listenerポートレットから Add new HTTPS listener for Tomcat をクリックします。

フィールドへ適切なデータを入力し、Save をクリックします。この例ではキーストアのみを指定し、truststoreは使用しません。(訳注:原文にtrustoreはtruststoreの意と思われます) キーストアのファイル・パスを指定する際は var/security/keystores/<your_keystore> のような形式で追加しますが、このパスはGeronimoの導入されたホーム・ディレクトリーへの相対パスです。

Client Auth Required のチェックボックスを選択することで、有効なクライアント証明書を提示したクライアントのみが暗号化コネクションを確立するようHTTPSリスナーに対し指示します。クライアント証明書は、以下のいずれかのロケーションに格納されたCA証明書と(順番に)検証されます。

  1. 上記で構成したトラスト・ストア
  2. javax.net.ssl.trustStore system propertyに記載されているキーストア・ファイル
  3. java-home/lib/security/jssecacerts
  4. java-home/lib/security/cacerts

このHTTPSネットワーク・リスナー構成を保存するとこの構成が自動的に開始したことがステータスから見て取れます。もし貴方のブラウザーでこのポートにアクセスを試みても失敗しますが、それはまだ貴方のクライアントが有効な証明書を使うように構成されていないためです。

  • No labels