この章では、Oracle Fusion Middlewareのセキュリティ機能を使用してキーストア、ウォレットおよび証明書を管理する方法について説明します。これらの項目が含まれます。
秘密鍵、デジタル証明書および信頼できるCA証明書は、キーストアに格納されます。この項では、Oracle Fusion Middlewareで使用可能なキーストアについて説明します。この項の項目は次のとおりです。
Oracle Fusion Middlewareには、鍵と証明書の2つのタイプのキーストアが用意されています。
JKSキーストアは、Sun Microsystemsが提供するJavaキーストアのデフォルトのJDK実装です。11g リリース1(11.1.1)では、すべてのJavaコンポーネントおよびJava EEアプリケーションは、JKSベースのキーストアおよびトラストストアを使用します。
JKSベースのキーストアは次に対して使用します。
Oracle Virtual Directory
次を含むOracle WebLogic Serverでデプロイされるアプリケーション
Oracle SOA Suite
Oracle WebCenter
Oracle Fusion Middlewareでは、グラフィカル・ユーザー・インタフェース・ツールまたはコマンドライン・ツールを使用して、Javaキーストアおよびそれに含まれる証明書を作成、インポート、エクスポートおよび削除できます。詳細は、キーストア管理ツールに関する項を参照してください。
キーストアの作成時に、自己署名証明書でラップされた鍵のペアをあらかじめキーストアに移入しておくことができます。このようなキーストアは、一般的には開発またはテスト・フェーズで使用されます。
また、認証局(CA)から署名された証明書を返送してもらえるように、鍵のペアの証明書署名リクエストを生成することもできます。証明書は、CAから返送されると、キーストアにインポートされます。これは信頼できるサード・パーティから取得したものなので、キーストアには信頼できる証明書が格納されたことになります。このようなキーストアは、一般的に本番環境で使用されます。
キーストアは、常にパスワードで保護されます。
Oracleウォレットは、証明書、信頼できる証明書、証明書リクエスト、秘密鍵などの資格証明を格納するコンテナです。Oracle Internet DirectoryなどのLDAPディレクトリやファイル・システムにOracleウォレットを格納できます。Oracleウォレットは、パスワードで保護することも自動ログインにもできます。
Oracleウォレットは次のコンポーネントで使用します。
Oracle HTTP Server
Oracle Web Cache
Oracle Internet Directory
Oracle Fusion Middlewareでは、グラフィカル・ユーザー・インタフェース・ツールまたはコマンドライン・ツールを使用して、ウォレットおよびそれに含まれる証明書を作成、インポート、エクスポートおよび削除できます。詳細は、キーストア管理ツールに関する項を参照してください。
ウォレットの作成時に、自己署名証明書をあらかじめ移入しておくことができます。このようなウォレットはテスト・ウォレットと呼ばれ、一般的には開発およびテスト・フェーズで使用されます。
また、認証局(CA)から署名された証明書を返送してもらえるように、証明書リクエストを生成することもできます。証明書は、CAから返送されると、ウォレットにインポートされます。このようなウォレットをサード・パーティのウォレットといいます。
テスト・ウォレットまたはサード・パーティのウォレットはパスワードで保護することも、パスワードが不要なように構成することもできます。後者は、自動ログイン・ウォレットと呼ばれています。
Oracle Fusion Middlewareでは、次のようなキーストア操作のオプションが用意されています。
WLST: JKSキーストアおよびウォレット用のコマンドライン・インタフェース
orapki: ウォレット用のコマンドライン・ツール
Fusion Middleware Control: グラフィカル・ユーザー・インタフェース
Oracle Wallet Manager: ウォレット用のスタンドアロンのグラフィカル・ユーザー・インタフェース(PKCS#11ウォレットの管理に推奨)
次の表は、各コンポーネントで使用されるキーストアのタイプ、およびキーストアの管理に使用できるツールを示します。
コンポーネント/アプリケーション | キーストアのタイプ | タスク | ツール |
---|---|---|---|
Oracle HTTP Server
Oracle Web Cache Oracle Internet Directory |
Oracleウォレット | ウォレットの作成、証明書リクエストの作成、ウォレットの削除、証明書のインポート、証明書のエクスポート、SSLの有効化 | Fusion Middleware Control、WLST
PKCS#11またはハードウェア・セキュリティ・モジュール(HSM)ベースのウォレットには、Oracle Wallet Managerおよびorapki。また、Fusion Middleware ControlおよびWLSTが使用できない環境(ドメインのないこれらのコンポーネントのスタンドアロンのアップグレードなど)でも使用されます。 |
Oracle Virtual Directory | JKSベースのキーストア | キーストアの作成、証明書リクエストの作成、キーストアの削除、証明書のインポート、証明書のエクスポート、SSLの有効化 | Fusion Middleware Control、WLST |
Oracle SOA Suite |
JKSベースのキーストア | キーストアのすべての操作 | JDK Keytool |
Oracle WebCenter |
JKSベースのキーストア | キーストアのすべての操作 | JDK Keytool |
Oracle WebLogicサーバー |
JKSベースのキーストア | キーストアのすべての操作 | JDK Keytool |
Oracle WebLogicサーバー |
JKSベースのキーストア | SSLの有効化 | Oracle WebLogic Server管理コンソール |
すべてのJava EEアプリケーション(Oracle Directory Integration Platform、Oracle Directory Services Managerなど) | JKSベースのキーストア | キーストアのすべての操作 | JDK Keytool |
関連項目: keytoolの使用法の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverの保護』を参照してください。 |
注意: 11gより前のウォレット(10g リリース10.1.2および10.1.3の形式に対応)も、11g リリース1(11.1.1)でサポートされています。 |
DERでエンコードされた証明書のインポートについて
DERでエンコードされた証明書または信頼できる証明書をOracleウォレットまたはJKSキーストアにインポートするときには、Fusion Middleware ControlもWLST
コマンドライン・ツールも使用できません。かわりに使用するツールは次のとおりです。
DERでエンコードされた証明書または信頼できる証明書をOracleウォレットにインポートするには、次のツールを使用します。
Oracle Wallet Manager
orapki
コマンドライン・ツール
DERでエンコードされた証明書または信頼できる証明書をJKSキーストアにインポートするには、keytool
ユーティリティを使用します。
WLSTでもFusion Middleware Controlでも作成されていないキーストアの使用
OracleウォレットまたはJKSキーストアがorapki
やkeytool
などのツールで作成されている場合には、使用する前にインポートする必要があります。具体的には次のような場合です。
Oracle HTTP Server、Oracle Web CacheおよびOracle Internet Directoryでは、orapki
またはOracle Wallet Managerを使用して作成されたウォレットをFusion Middleware Controlで表示または管理するには、まずFusion Middleware ControlまたはWLSTのimportWallet
コマンドを使用してウォレットをインポートする必要があります。
Oracle Virtual Directoryでは、keytool
を使用して作成されたキーストアをFusion Middleware Controlで表示または管理するには、まずFusion Middleware ControlまたはWLSTのimportKeyStore
コマンドを使用してキーストアをインポートする必要があります。
ファイル・システムへのキーストアのコピーはサポートされない
ファイル・システム上の任意のディレクトリにキーストアを直接作成、名前変更、またはコピーすることはサポートされていません。使用を希望する11gより前の既存のキーストアまたはウォレットは、Fusion Middleware ControlまたはWLSTユーティリティを使用してインポートする必要があります。
追加情報
これらのツールの詳細は、次の各項を参照してください。
Oracle Fusion Middlewareでは、JKSキーストアおよびOracleウォレットを作成および管理したり、そこに格納されたオブジェクトを操作するwlst
スクリプトのセットを提供します。
WLSTコマンドライン・インタフェースの起動方法
SSL用のWLST
コマンドを実行する場合は、Oracle共通ホームからWLST
スクリプトを起動する必要があります。詳細は、第3.5.1.1項を参照してください。
注意: SSL関連のすべてのWLSTコマンドでは、前述の場所でのみスクリプトを起動する必要があります。 |
これにより、WLSTシェルが起動します。ユーザー名、パスワードおよび接続URLを指定して、実行中のOracle WebLogic Serverインスタンスに接続します。接続すると、次の項で説明するようにSSL関連のWLSTコマンドを実行できるようになります。
この項では、キーストアおよび証明書の一般的なライフサイクル、およびOracle Fusion Middlewareツールを使用してキーストアおよび証明書を作成および保守する方法について説明します。これらの項目が含まれます。
鍵と証明書はデータのデジタル署名および検証に使用され、ネットワーク接続において認証、整合性およびプライバシを実現できます。
Javaキーストア(JKS)は、組織の鍵と証明書を保持する保護されたデータベースです。Oracle Fusion Middlewareは、Oracle Virtual Directory、およびOracle WebLogic Serverにデプロイされたアプリケーションに対して、JKSキーストアを使用します。
キーストアへのアクセスには、キーストアの作成者がキーストアの作成時に定義したパスワードが必要です。このパスワードを変更するには現在のパスワードを入力する必要があります。
また、キーストア内の秘密鍵は、それぞれ独自のパスワードで保護できます。
この項の項目は次のとおりです。
キーストアはそれぞれ一意のアイデンティティを示すため、コンポーネント・インスタンス間またはOracleインスタンス間ではキーストアを共有しないことをお薦めします。
ただし、コンポーネント・インスタンスのクラスタを含む環境は例外です。この場合はキーストアを共有してかまいません。
キーストアを簡単に共有するための管理ツールまたはインタフェースは用意されていません。ただし、あるインスタンスからキーストアをエクスポートして別のインスタンスにインポートすることはできます。
JKSキーストアの場合は、次のネーミング規則に従います。
256文字を超える名前は使用しないでください。
キーストア名には、次のいずれの文字も使用しないでください。
| ; , ! @ # $ ( ) < > / \ " ' ` ~ { } [ ] = + & ^ space tab
注意: オペレーティング・システムでこれらの文字をサポートしていても、このルールは守ってください。 |
キーストア名には、ASCII以外の文字は使用しないでください。
また、ディレクトリ名およびファイル名に関するオペレーティング・システム固有のルールにも従ってください。
JKSキーストアの一般的なライフサイクル・イベントは、次のとおりです。
キーストアが作成されます。キーストアは直接作成するか、ファイル・システムからキーストア・ファイルをインポートすることによって作成できます。
使用可能なキーストアのリストが表示され、特定のキーストアが選択されて更新されます。
キーストアが更新または削除されます。更新操作では、キーストア・パスワードを入力する必要があります。
キーストア・パスワードは変更できます。
キーストアは削除できます。
キーストアはエクスポートおよびインポートできます。
この項では、次のキーストアの操作について説明します。
Fusion Middleware Controlを使用して目的のドメインにログインします。
ナビゲーション・ペインからコンポーネント・インスタンスを見つけます。
「component_name」→「セキュリティ」→「キーストア」にナビゲートします。たとえば、「Oracle Virtual Directory」→「セキュリティ」→「キーストア」にナビゲートします。
注意: コンポーネント・タイプは、このページの上部の「トポロジ」アイコンの横にあります。 |
「Javaキーストア」ページが表示されます。このページで、キーストアを作成、更新および削除したり、他のキーストア管理タスクを実行することができます。
「作成」をクリックします。「キーストアの作成」ダイアログが表示されます。
名前やパスワードなどのキーストアの詳細情報を入力します。
このダイアログでは自己署名証明書をリクエストしたり、別名およびDN情報を入力することもできます。
注意: このキーストアを信頼できる証明書の格納にのみ使用する場合は、自己署名付き証明書の作成チェックボックスを選択解除できます。こうすると、鍵のペアを含まないキーストアが作成されます。 |
「発行」をクリックします。Javaキーストアのリストに新しいキーストアが表示されます。
インスタンス名をinst1
とすると、次のコマンドを使用してキーストアを作成します。
createKeyStore('inst1', 'ovd5', 'ovd', 'newKeyStore', 'password')
password
は、このキーストアのパスワードです。
複数のOracle Virtual Directoryインスタンスで同じキーストア・ファイルを共有するには、キーストアをあるインスタンスからエクスポートして別のインスタンスにインポートします。
次の手順を実行して、キーストアをエクスポートします。
Fusion Middleware Controlを使用したキーストアの作成に関する項の説明に従って、コンポーネント・インスタンスの「Javaキーストア」ページにナビゲートします。
ストアのリストから目的のキーストアを選択します。
「エクスポート」をクリックします。
表示されるダイアログ・ボックスにキーストアのパスワードを入力して続行します。
ファイル・システムの場所を指定して、「OK」をクリックします。
インスタンス名をinst1
とすると、次のコマンドを使用してキーストアをエクスポートします。
exportKeyStore('inst1', 'ovd5', 'ovd', 'test', 'password', '/tmp')
password
は、このキーストアのパスワードです。
このコマンドにより、ディレクトリ/tmp
の下のtest
という名前のファイルにキーストアがエクスポートされます。
第8.3.3.1項「Fusion Middleware Controlを使用したキーストアの作成」の説明に従って、コンポーネント・インスタンスの「Javaキーストア」ページにナビゲートします。
ストアのリストから目的のキーストアを選択します。
「削除」をクリックします。
削除要求の確認を求めるダイアログ・ボックスが表示されます。
「削除」をクリックします。
アプリケーション・サーバー・インスタンス名をinst1
とすると、次のコマンドを使用してキーストアを削除します。
deleteKeyStore('inst1', 'ovd5', 'ovd', 'demo')
ovd
はコンポーネント・タイプ、ovd5
はコンポーネント・インスタンス、demo
はキーストア名です。
第8.3.3.1項「Fusion Middleware Controlを使用したキーストアの作成」の説明に従って、コンポーネント・インスタンスの「Javaキーストア」ページにナビゲートします。
「インポート」をクリックします。
「キーストアのインポート」ダイアログ・ボックスが表示されます。
ファイル・システムを参照して、キーストア・ファイルを見つけます。
キーストアの名前を入力します。キーストア・パスワードを入力します。
「OK」をクリックします。
インポートされたキーストアがJavaキーストアのリストに表示されます。
インスタンス名をinst1とすると、次のコマンドを使用してキーストアをインポートします。
importKeyStore('inst1', 'ovd5', 'ovd', 'demojks', 'password', '/tmp/demojks.jks')
password
は、このキーストアのパスワードです。
第8.3.3.1項「Fusion Middleware Controlを使用したキーストアの作成」の説明に従って、コンポーネント・インスタンスの「Javaキーストア」ページにナビゲートします。
キーストアを選択して、「パスワードの変更」をクリックします。
表示されるダイアログ・ボックスに、現在のパスワードと新しいパスワードを入力します。新しいパスワードは、確認のため2回入力します。
「OK」をクリックして、パスワードを変更します。以降、このキーストアまたはその証明書を操作するには、この新しいパスワードを使用する必要があります。
インスタンス名をinst1
とすると、次のコマンドを使用してキーストア・パスワードを変更します。
changeKeyStorePassword('inst1', 'ovd5', 'ovd', 'demojks', 'current_password', 'new_password')
current_password
はこのキーストアの現在のパスワードで、new_password
は新しいパスワードです。
キーストアに存在する証明書の一般的なライフサイクル・イベントは、次のとおりです。
鍵のペアの自己署名証明書が自動的に作成されます。
証明書署名リクエスト(CSR)が生成され、ファイルにエクスポートできます。
証明書がキーストアにインポートされます。証明書はテキスト・ボックスに貼り付けることも、ファイル・システムからインポートすることもできます。ユーザー証明書も信頼できる証明書(CA証明書ともいいます)も、このようにインポートできます。
証明書または信頼できる証明書が、キーストアからファイルにエクスポートされます。
証明書または信頼できる証明書が、キーストアから削除されます。
この項では、次のような一般的な証明書の操作について説明します。
キーストアの新しい鍵(新しい自己署名証明書)を生成する手順は次のとおりです。
第8.3.3.1項「Fusion Middleware Controlを使用したキーストアの作成」の説明に従って、コンポーネント・インスタンスの「Javaキーストア」ページにナビゲートします。
ストアのリストからキーストアを選択します。
表示されるダイアログ・ボックスにキーストアのパスワードを入力して続行します。
「証明書の管理」ページが表示されます。ここでは、キーストア・エントリの両方のタイプ(証明書および信頼できる証明書)を管理できます。
「鍵ペアの生成」ボタンをクリックします。
「鍵ペアの生成」ダイアログで、新しい鍵の詳細を入力して「OK」をクリックします。
例: 新しい鍵ペアの生成
この手順を実行すると、キーストアに新しい公開鍵と秘密鍵のペアが生成され、公開鍵は自己署名証明書でラップされます。
この手順では既存のキーストアに新しい鍵のペアを作成していますが、キーストア自体を作成するときに新しい鍵のペアを生成することもできます。詳細は、Fusion Middleware Controlを使用したキーストアの作成に関する項を参照してください。
インスタンス名をinst1
とすると、次のコマンドを使用してキーストアの新しい鍵を生成します。
generateKey('inst1', 'ovd5', 'ovd', 'newKeystore', 'password', 'subject_dn', 'key_size', 'alias')
password
はこのキーストアのパスワード、subject_dn
は鍵ペアを生成する際に使用される識別名、key_size
はキー・サイズ(ビット単位)、alias
は鍵の別名です。
次の手順を実行して、証明書署名リクエスト(CSR)を作成します。
ナビゲーション・ペインからコンポーネント・インスタンスを見つけます。
「component_name」→「セキュリティ」→「キーストア」にナビゲートします。
ストアのリストから目的のキーストアを選択します。
表示されるダイアログ・ボックスにキーストアのパスワードを入力して続行します。
「証明書の管理」ページが表示されます。CSRを生成する自己署名証明書を選択して、「CSRの生成」をクリックします。
ダイアログ・ボックスが開き、生成された署名リクエストが表示されます。次のいずれかを実行できます。
ダイアログ・ボックスからCSRをコピーして、ファイルに貼り付けます。
「CSRのエクスポート」ボタンをクリックして、ファイルに直接保存します。
インスタンス名をinst1
とすると、次のコマンドを使用してCSRを生成およびエクスポートします。
exportKeyStoreObject('inst1', 'ovd5', 'ovd', 'newKeystore', 'password', 'CertificateRequest', '/tmp', 'alias')
password
はこのキーストアのパスワード、/tmp
はBASE64形式で証明書リクエストが生成されるファイルbase64.txt
を含むディレクトリのパス、alias
は証明書リクエストの生成に使用される鍵ペアの別名です。
注意: DERでエンコードされた証明書または信頼できる証明書をJKSキーストアにインポートするには、Fusion Middleware Controlは使用できません。このタスクには、keytool ユーティリティを使用します。 |
次の手順を実行して、証明書または信頼できる証明書をキーストアにインポートします。
ナビゲーション・ペインからコンポーネント・インスタンスを見つけます。
「component_name」→「セキュリティ」→「キーストア」にナビゲートします。
ストアのリストから目的のキーストアを選択します。
表示されるダイアログ・ボックスにキーストアのパスワードを入力して続行します。
「証明書の管理」ページが表示されます。「インポート」ボタンをクリックします。
ダイアログ・ボックスが表示され、次のいずれかを実行できます。
証明書または信頼できる証明書のBase-64でエンコードされたコンテンツをキーストアに直接貼り付けます。
証明書または信頼できる証明書ファイルをファイル・システムから選択します。
証明書をインポートする際に別名を指定する必要があります。
証明書をインポートする場合、別名は対応する鍵のペアの別名と一致する必要があります。
信頼できる証明書をインポートする場合、別名はキーストア内で一意である必要があります。
「OK」をクリックします。「証明書の管理」ページが開き、新しくインポートされた証明書または信頼できる証明書が表示されます。
注意: DERでエンコードされた証明書または信頼できる証明書をJKSキーストアにインポートするには、WLST コマンドライン・ツールは使用できません。このためには、keytool ユーティリティを使用します。 |
インスタンス名をinst1
とすると、次のコマンドを使用してキーストアに証明書をインポートします。
importKeyStoreObject('inst1', 'ovd5', 'ovd', 'newKeystore', 'password', 'Certificate', '/tmp/cert.txt', 'alias')
password
はこのキーストアのパスワード、/tmp/cert.txt
はBASE64でエンコードされた証明書を含むファイル、alias
はこの証明書をインポートする際に使用される別名です。この別名は、この証明書リクエストの生成に使用された鍵ペアの別名と同じにする必要があります。
次の手順を実行して、証明書または信頼できる証明書をキーストアからエクスポートします。
ナビゲーション・ペインからコンポーネント・インスタンスを見つけます。
「component_name」→「セキュリティ」→「キーストア」にナビゲートします。
ストアのリストから目的のキーストアを選択します。
表示されるダイアログ・ボックスにキーストアのパスワードを入力して続行します。
「証明書の管理」ページが表示されます。「エクスポート」をクリックします。
ダイアログ・ボックスが開き、Base64でエンコードされた証明書または信頼できる証明書が表示されます。コンテンツをテキスト・ボックスからコピーしてファイルに貼り付けるか、「エクスポート」ボタンを選択してファイルに直接貼り付けます。
インスタンス名をinst1
とすると、次のコマンドを使用して証明書をエクスポートします。
exportKeyStoreObject('inst1', 'ovd5', 'ovd', 'newKeystore', 'password', 'Certificate', '/tmp', 'alias')
password
はこのキーストアのパスワード、/tmp
はBASE64形式で証明書が生成されるファイルbase64.txt
を含むディレクトリのパス、alias
はエクスポートされる証明書の別名です。
次の手順を実行して、証明書または信頼できる証明書をキーストアから削除します。
ナビゲーション・ペインからコンポーネント・インスタンスを見つけます。
「component_name」→「セキュリティ」→「キーストア」にナビゲートします。
ストアのリストから目的のキーストアを選択します。
表示されるダイアログ・ボックスにキーストアのパスワードを入力して続行します。
「証明書の管理」ページが表示されます。削除する証明書または信頼できる証明書を選択して、「削除」をクリックします。
選択を確認するダイアログ・ボックスが表示されます。「OK」を選択して確認します。
アプリケーション・サーバー・インスタンス名をinst1
とすると、次のコマンドを使用して証明書を削除します。
removeKeyStoreObject('inst1', 'ovd5', 'ovd', 'newKeystore', 'password', 'Certificate', 'alias')
password
はこのキーストアのパスワードで、alias
は削除する証明書の別名です。
次の手順を実行して、キーストアに存在する自己署名証明書をサード・パーティ証明書に変換します。
ナビゲーション・ペインからコンポーネント・インスタンスを見つけます。
「component_name」→「セキュリティ」→「キーストア」にナビゲートします。
ストアのリストから自己署名証明書が格納されているキーストアを選択します。
表示されるダイアログ・ボックスにキーストアのパスワードを入力し、「OK」をクリックして続行します。
「証明書の管理」ページが表示されます。
変換対象の自己署名証明書用に新しい証明書リクエストを生成する必要があります。証明書を選択して、「CSRの生成」をクリックします。この例では、別名がdemo
である自己署名証明書のリクエストが作成されます。
証明書リクエストが表示されます。
次のいずれかを実行できます。
Base64でエンコードされた証明書リクエストをコピーしてファイルに貼り付けます。
「CSRのエクスポート」ボタンを使用して、ファイルに直接エクスポートします。
証明書リクエスト・ファイルを認証局(CA)に送信します。
CAは証明書リクエストに署名して、証明書を生成します。CAは、次のいずれかを返送します。
1個のファイル。新しく生成された証明書と独自のCA証明書の両方がpkcs7
形式で含まれます。
2個のファイル。一方には新しく生成された証明書、もう一方には独自のCA証明書が含まれます。
「インポート」を使用して、これらのファイルをキーストアにインポートします。
CAから1個のファイルを受信した場合は、置き換える自己署名証明書の別名(ステップ6を参照)と一致する別名を使用して、証明書としてインポートします。
2個のファイルを受信した場合は、次の手順を実行します。
CA証明書が含まれるファイルを信頼できる証明書としてインポートします(キーストア内で一意の別名を使用)。
証明書ファイルを証明書としてインポートします(置き換える自己署名証明書の別名と一致する別名を使用)。
注意: 順序は重要です。信頼できる証明書、証明書の順にインポートする必要があります。 |
CAから1個のファイルが返され、これを証明書としてインポートします。
インポート後に、CAが発行した証明書で自己署名証明書が置き換えられます。
次の手順を実行して、自己署名証明書をサード・パーティ証明書に変換します。
CSRを生成およびエクスポートします。
exportKeyStoreObject('inst1', 'ovd5', 'ovd', 'jks1', '<password>', 'CertificateRequest', '/tmp', 'mykey')
CSR /tmp/base64.txt
を認証局に送信します。CAは、PKCS#7形式の1つのファイルまたは2つの別々のファイルとして、新しく生成された証明書と独自の証明書を返送します。
CAから1個のファイルを受信した場合は、次のコマンドを実行します。
importKeyStoreObject('inst1', 'ovd5', 'ovd', 'jks1', 'password', 'Certificate', '/tmp/cert.txt', 'alias')
password
はこのキーストアのパスワード、/tmp/cert.txt
はCAから返され、BASE64でエンコードされたPKCS#7を含むファイル、alias
はこの証明書をインポートする際に使用される別名です。この別名は、この証明書リクエストの生成に使用された鍵ペアの別名と一致している必要があります。
CAから2個のファイルを受信した場合は、信頼できる証明書としてCA証明書を最初にインポートし、次に新しく生成された証明書をインポートします。
importKeyStoreObject('inst1', 'ovd5', 'ovd', 'jks1', 'password', 'TrustedCertificate', '/tmp/cacert.txt', 'unique_alias')
unique_alias
は、信頼できる証明書をインポートする際に使用される一意の別名です。
importKeyStoreObject('inst1', 'ovd5', 'ovd', 'jks1', 'password', 'Certificate', '/tmp/cert.txt', 'alias')
password
はこのキーストアのパスワード、/tmp/cert.txt
はCAから返され、BASE64でエンコードされた証明書を含むファイル、/tmp/cacert.txt
はBASE64でエンコードされたCA証明書を含むファイル、alias
はこの証明書をインポートする際に使用される別名です。この別名は、この証明書リクエストの生成に使用された鍵ペアの別名と一致している必要があります。
この項は次の管理に関する項目で構成されています。
Oracle Virtual Directoryキーストアのルート・ディレクトリは、$ORACLE_INSTANCE/config/OVD
/ovd_instance_name
/keystores
です。
このルート・ディレクトリには、すべてのJKSファイルが含まれます。
keys.jks
とtrust.jks
という2つのキーストアがあるとすると、サンプル構造は次のようになります。
ORACLE_INSTANCE/config/OVD/ovd_instance_name
/keystores/keys.jks ORACLE_INSTANCE/config/OVD/ovd_instance_name
/keystores/trust.jks
期限が切れそうな証明書は、実際に期限が切れる前に置き換えて、アプリケーションの停止時間を回避または短縮する必要があります。
期限が切れそうな証明書を置き換える手順は次のとおりです。
キーストアから証明書リクエストを生成します(現在期限が切れそうな証明書の発行時と同じ鍵ペアを使用します)。
証明書発行のために、この証明書リクエストをサード・パーティの認証局(CA)に送信します。新しい証明書の発効日は、現在の証明書の失効日より早くしてください。停止時間を短縮するために、このような重複期間を設けることをお薦めします。
注意: サード・パーティのCAがすでにリポジトリの証明書リクエストを保守している場合、ステップ1と2は不要です。その場合は、単純にその証明書リクエストの新しい証明書の発行をCAに依頼します。 |
新しく発行された証明書を、鍵ペアの別名と同じ別名を使用してキーストアにインポートします。
新しい証明書が元の証明書の発行元以外のCAで発行された場合は、新しく発行された証明書をインポートする前に、新しいCAの信頼できる証明書をインポートする必要があります。
一般的には、証明書のDNはキーストアが使用されるサーバーのホスト名に基づいています。
たとえば、キーストアがOracle Virtual Directoryサーバーのホストmy.example.comで作成されている場合、このOracle Virtual Directoryキーストアの証明書のDNは次のようになります。
"CN=my.example.com,O=organization name"
ほとんどのクライアントはSSLハンドシェイク時にホスト名を検証するため、この同期は必須です。
ホスト名の検証を実行するクライアントには、WebブラウザやOracle HTTP Clientなどがあります。サーバーのホスト名が証明書のDNと一致しない場合、次のように処理されます。
明確な警告が表示されます(ブラウザ・クライアントの場合)。
SSLハンドシェイクが失敗する場合があります(その他のクライアントの場合)。
クライアントからリクエストを受信しているサーバー上にキーストアがある場合、このサーバーのホスト名が変更されるたびに、キーストア内の証明書も更新する必要があります。
これは、新しいDN(新しいホスト名に基づく)で新しい証明書をリクエストすることで実行できます。
本番のキーストアの場合
手順は次のとおりです。
新しいDN(新しいホスト名に基づく)で新しいリクエストを生成します。
このリクエストを認証局(CA)に送信します。
CAから新しい証明書が返送されます。
証明書リクエストが生成された鍵ペアと同じ別名で新しい証明書をインポートします。
自己署名付きキーストアの場合
手順は次のとおりです。
既存のキーストアを削除します。
新しいDN(新しいホスト名に基づく)を使用して鍵ペアを含む新しいキーストアを作成します。
両方のタイプのキーストアでは
本番キーストアの場合も自己署名付きキーストアの場合も、新しい証明書がキーストアで使用可能になったら、信頼する必要があるすべてのコンポーネントのキーストアにその証明書を確実にインポートします。たとえば、Oracle Virtual DirectoryのHTTPリスナーでSSLが有効な場合、ホスト名の変更によって証明書が変更されたら、新しい証明書をクライアント・キーストアまたはブラウザ・リポジトリにインポートして、新しいピアを信頼できるようにする必要があります。
この項の項目は次のとおりです。
この項の項目は次のとおりです。
これは、PKCS#12ウォレットの不明瞭化された形式です。実行時にパスワードを入力せずに、サービスおよびアプリケーションにPKIベースでアクセスできます。ウォレットへの追加、変更、削除の際にも、パスワードは不要です。ファイル・システム権限では、ウォレットの自動ログインに必要なセキュリティが提供されます。
注意: 以前のリリースでは、パスワード付きのウォレットを作成してから自動ログインを有効にして不明瞭化されたウォレットを作成できました。11g リリース1(11.1.1)では、自動ログイン・ウォレットはパスワードなしで作成されます。そのようなウォレットを使用する場合、パスワードを指定する必要はありません。パスワードのない自動ログインのウォレットを使用している場合、 古いタイプのウォレット(リリース10gのウォレットなど)は、引き続き以前と同様に機能します。 |
名前のとおり、このタイプのウォレットはパスワードで保護されます。ウォレットのコンテンツに対する追加、変更または削除には、パスワードが必要です。
パスワードで保護されたウォレットが作成されるたびに、自動ログイン・ウォレットが自動的に生成されます。ただし、この自動ログイン・ウォレットは、前の項目で説明した、ユーザーが作成した自動ログイン・ウォレットとは異なります。ユーザーが作成したウォレットは構成時にパスワードなしで更新することができますが、自動的に生成される自動ログイン・ウォレットは直接更新できない読取り専用のウォレットです。ウォレットへの変更は、自動ログイン・ウォレットを再度生成するときに、パスワードで保護されたファイルを使用して(パスワードを入力して)行う必要があります。
このシステム生成の自動ログイン・ウォレットの目的は、実行時にパスワードなしでサービスおよびアプリケーションにPKIベースのアクセスを提供することですが、構成時にはパスワードが必要です。
自己署名付きウォレットには、発行者がサブジェクトと同じである証明書が格納されます。これらの証明書は、一般的には信頼性がさほど優先されないイントラネット環境内で作成されます。自己署名付きウォレットの発行者はそれぞれ一意であるため、複数のコンポーネントおよびウォレットを含む環境では信頼性管理タスクはn倍に増加します。
Fusion Middleware Controlを使用して作成した場合、自己署名付きウォレットは5年間有効です。
サード・パーティのウォレットには、よく知られているCAで発行された証明書が格納されます。機能およびセキュリティは自己署名付きウォレットと同じですが、サード・パーティの証明書は、発行者がよく知られており、多くのクライアントから信頼されているので、信頼性が向上します。
自己署名付きウォレットとサード・パーティのウォレットの違い
機能およびセキュリティの観点からは、自己署名証明書はサード・パーティで発行された証明書と同等です。唯一の異なる点は、自己署名証明書は信頼性がないことです。
ウォレットはそれぞれ一意のアイデンティティを示すため、コンポーネント・インスタンス間またはOracleインスタンス間ではウォレットを共有しないことをお薦めします。
ただし、コンポーネント・インスタンスのクラスタを含む環境は例外です。この場合はウォレットを共有してかまいません。
ウォレットを簡単に共有するための管理ツールまたはインタフェースは用意されていません。ただし、あるインスタンスからウォレットをエクスポートして別のインスタンスにインポートすることはできます。
Oracleウォレットの場合は、次のネーミング規則に従います。
256文字を超える名前は使用しないでください。
ウォレット名には、次のいずれの文字も使用しないでください。
| ; , ! @ # $ ( ) < > / \ " ' ` ~ { } [ ] = + & ^ space tab
注意: オペレーティング・システムでこれらの文字をサポートしていても、このルールは守ってください。 |
ウォレット名には、ASCII以外の文字は使用しないでください。
また、ディレクトリ名およびファイル名に関するオペレーティング・システム固有のルールにも従ってください。
Oracle Internet DirectoryなどのLDAPディレクトリでのデータの処理方法により、ウォレット名では大文字と小文字が区別されません。
そのため、ウォレット名は大文字/小文字を区別せずに使用することをお薦めします(可能であれば、すべて小文字を使用します)。たとえば、UPPER
という名前のウォレットを作成した場合、upper
という名前のウォレットを別に作成しないでください。作成すると、ウォレットの管理作業時に混乱を引き起こす可能性があります。
Oracleウォレットは、使用先のコンポーネントに関連付けられます。コンポーネント・インスタンスを探す手順は次のとおりです。
管理者の資格証明を使用してFusion Middleware Controlにログインします。
目的のドメインを選択します。
注意: 「設定」を使用すると、作業対象の特定のOracle WebLogic Serverドメインを見つけることができます。 |
ナビゲーション・ペインで、ウォレットを使用するインスタンス(OHSインスタンスなど)を探します。インスタンスをクリックします。
ページの左上の「ファーム」ドロップダウンの横にコンポーネント・タイプが表示されます。
コンポーネント・タイプのドロップダウンから選択します(Oracle HTTP Serverなど)。
コンポーネントが起動していない場合、右クリックして「コンポーネント」メニューを開き、「コントロール」→「起動」を押して、コンポーネントを起動します。
「セキュリティ」→「ウォレット」にナビゲートします。
「ウォレット」ページが表示されます。
「ウォレット」ページで、次の処理を実行できます。
ウォレットの作成
ウォレットの削除
ウォレットのインポート
ウォレットのエクスポート
Oracleウォレットの一般的なライフサイクル・イベントは、次のとおりです。
ウォレットが作成されます。ウォレットは直接作成するか、ファイル・システムからウォレット・ファイルをインポートすることによって作成できます。
使用可能なウォレットのリストが表示され、特定のウォレットが選択されて更新されます。
ウォレットが更新または削除されます。パスワードで保護されたウォレットの更新操作では、ウォレット・パスワードを入力する必要があります。
パスワードで保護されたウォレットでは、ウォレット・パスワードは変更できます。
ウォレットは削除できます。
ウォレットはエクスポートおよびインポートできます。
この項では、次のような様々なウォレット管理機能を実行するために必要な手順について説明します。
コンポーネント・インスタンスの「ウォレット」ページにナビゲートします。Fusion Middleware Controlのウォレット管理ページへのアクセスに関する項を参照してください。
「作成」をクリックします。
「ウォレットの作成」ページが表示されます。
ウォレットの名前を入力します。
ウォレットを自動ログイン・ウォレットにするかどうかによって、「自動ログイン」ボックスを選択または選択解除します。デフォルトでは、自動ログイン・ウォレットになります。
詳細は、パスワードで保護されたウォレットと自動ログイン・ウォレットに関する項を参照してください。
「発行」をクリックします。
この時点で、証明書リクエスト(CR)を追加するかどうかを選択する必要があります。ここで追加しなくとも、CRは後でいつでも追加できます。詳細は、Fusion Middleware Controlを使用した証明書リクエストの追加に関する項を参照してください。
この例では、CRを追加します。
「終了」をクリックします。
CRには、次の2つのオプションがあります。
Base64でエンコードされた証明書リクエストを、テキスト・ボックスからコピーしてファイルに貼り付けます。
「証明書リクエストのエクスポート」ボタンを使用して、ファイルに直接エクスポートします。
ウォレットの作成を確認するメッセージが表示されます。
注意: この章で説明するWLSTコマンドでは、コンポーネントの例としてOracle Internet Directoryを使用します。Oracle HTTP ServerまたはOracle Web Cacheに対して同じコマンドを実行するには、3番目のパラメータをoid からそれぞれohs またはwebcache に変更します。 |
インスタンス名をinst1
とすると、次のコマンドを使用してウォレットを作成します。
createWallet('inst1', 'oid1', 'oid', 'oid2', 'password')
oid2
はこのウォレットの名前で、passwordはこのウォレットのパスワードです。自動ログイン・ウォレットを作成する必要がある場合、パスワードは''と指定する必要があります(引用符の間にテキストは入れません)。
次の手順を実行して、自己署名付きウォレットを作成します。
コンポーネント・インスタンスの「ウォレット」ページにナビゲートします。Fusion Middleware Controlのウォレット管理ページへのアクセスに関する項を参照してください。
「自己署名付きウォレットの作成」をクリックします。
「自己署名付きウォレットの作成」ページで、次のデータを入力してウォレットを作成します。次のものが含まれます。
ウォレット名
自動ログイン・ウォレットかどうか
DN情報
キー・サイズ
「発行」をクリックします。
確認メッセージが表示され、新しいウォレットがウォレットのリストに表示されます。
インスタンス名をinst1
とすると、次のコマンドを使用して自己署名付きウォレットを作成します。
createWallet('inst1', 'oid1', 'oid', 'oid2', 'password') addSelfSignedCertificate('inst1', 'oid1', 'oid', 'oid2', 'password', 'subject_dn', 'key_size')
oid2
はウォレット名、subject_dn
は自己署名証明書の識別名、key_size
はキー・サイズ(ビット単位)、password
はこのウォレットのパスワードです。自動ログイン・ウォレットを作成する必要がある場合、パスワードは''と指定する必要があります(引用符の間にテキストは入れません)。
自己署名付きウォレットをサード・パーティのウォレットに変換する手順は、自己署名付きウォレットのサード・パーティのウォレットへの変更に関する項を参照してください。
自己署名付きウォレットをサード・パーティのウォレットに変換する手順は、自己署名付きウォレットのサード・パーティのウォレットへの変更に関する項を参照してください。
次の手順を実行して、ウォレットをエクスポートします。
コンポーネント・インスタンスの「ウォレット」ページにナビゲートします。Fusion Middleware Controlのウォレット管理ページへのアクセスに関する項を参照してください。
目的のウォレットに対応する行を選択します。
注意: ウォレットの名前自体をクリックしないでください。名前をクリックすると、証明書管理操作用のウォレットが開きます。 |
「エクスポート」をクリックします。
「ウォレットのエクスポート」ページが表示されます。
ファイル名とウォレットのエクスポート先を入力します。
「OK」をクリックします。
インスタンス名をinst1
とすると、次のコマンドを使用してウォレットをエクスポートします。
exportWallet('inst1', 'oid1', 'oid', 'selfsigned', 'password', '/tmp')
password
はこのウォレットのパスワードです(自動ログイン・ウォレットの場合、パスワードは''と指定する必要があります)。
自動ログイン・ウォレットの場合、このコマンドにより、ウォレットはディレクトリ/tmp
の下のcwallet.ssoという名前のファイルにエクスポートされます。パスワードで保護されたウォレットの場合、/tmp
の下にewallet.p12
とcwallet.sso
という2つのファイルが作成されます。
コンポーネント・インスタンスの「ウォレット」ページにナビゲートします。Fusion Middleware Controlのウォレット管理ページへのアクセスに関する項を参照してください。
「インポート」をクリックします。
「ウォレットのインポート」ページが表示されます。
これが自動ログイン・ウォレットの場合は、ボックスを選択してウォレット名を入力します。パスワードは不要です。
これが自動ログイン・ウォレットでない場合は、自動ログイン・ボックスを選択解除します。ウォレット名とパスワードを指定します。
「OK」をクリックします。ウォレットがリポジトリにインポートされます。
インスタンス名をinst1
とすると、次のコマンドを使用してウォレットをインポートします。
importWallet('inst1', 'oid1', 'oid', 'oid5', 'password', '/tmp/ewallet.p12')
password
はインポートされるウォレットのパスワードで、/tmp/ewallet.p12
にはウォレット・ファイルが含まれます(ewallet.p12
とcwallet.sso
という2つのウォレット・ファイルがある場合は、ewallet.p12
を指します)。cwallet.sso
を指すのは、自動ログイン・ウォレットの場合のみです。またこの場合、パスワードは''と指定する必要があります。
コンポーネント・インスタンスの「ウォレット」ページにナビゲートします。Fusion Middleware Controlのウォレット管理ページへのアクセスに関する項を参照してください。
目的のウォレットに対応する行を選択します。
「削除」をクリックします。
このウォレットは削除され、ウォレットのリストに表示されなくなります。
インスタンス名をinst1
とすると、次のコマンドを使用してウォレットを削除します。
deleteWallet('inst1', 'oid1', 'oid', 'selfsigned')
完全な証明書のライフサイクルは、ウォレットの作成から始まり、次のような処理が含まれます。
空のウォレット(証明書リクエストが格納されていないウォレット)を作成します。
証明書リクエストをウォレットに追加します。
証明書リクエストをエクスポートします。
証明書リクエストを使用して、対応する証明書を取得します。
信頼できる証明書をインポートします。
証明書をインポートします。
これらの手順は、サード・パーティの信頼できる証明書を含むウォレットの生成に必要です。このタスクの詳細は、Fusion Middleware Controlを使用したサード・パーティ証明書への自己署名証明書の変換に関する項を参照してください。
Oracleウォレットは、使用先のコンポーネントに関連付けられます。コンポーネント・インスタンスを探す手順は次のとおりです。
管理者の資格証明を使用してFusion Middleware Controlにログインします。
目的のドメインを選択します。
注意: 「設定」を使用すると、作業対象の特定のOracle WebLogic Serverドメインを見つけることができます。 |
ナビゲーション・ペインを使用して、ウォレットを使用するインスタンス(Oracle HTTP Serverインスタンスなど)を探します。
コンポーネント・インスタンスを見つけた後、Fusion Middleware Controlのウォレットの証明書管理ページにアクセスするには、次の2つの方法があります。
「ウォレット
」ページに移動し、目的のウォレットの行を選択して、「管理」をクリックします。
「ウォレット
」ページに移動し、目的のウォレットを見つけて、ウォレット名をクリックします。
証明書管理ページでは、次の処理を実行できます。
証明書リクエストの追加
証明書リクエスト、証明書または信頼できる証明書のエクスポート
証明書または信頼できる証明書のインポート
証明書リクエスト、証明書または信頼できる証明書の削除
この項では、次のような一般的な証明書の操作について説明します。
ウォレットを作成するときに証明書リクエストを追加できますが、そのときに追加していない場合は、次の手順を使用して追加できます。
証明書管理ページにナビゲートします。Fusion Middleware Controlのウォレットの証明書管理ページへのアクセスに関する項を参照してください。
「証明書リクエストの追加」をクリックします。
CRのDN値を入力するダイアログ・ボックスが表示されます。
アスタリスク(*)のマークが付いたフィールドは必須です。
「OK」をクリックします。
新しいCRが生成されて、ダイアログ・ボックスが開き、テキスト・ボックスにそのCRが表示されます。次のいずれかを実行できます。
Base64でエンコードされた証明書リクエストをコピーしてファイルに貼り付けます。
「証明書リクエストのエクスポート」ボタンを使用して、ファイルに直接エクスポートします。
インスタンス名をinst1
とすると、次のコマンドを使用してウォレットの証明書リクエストを追加します。
addCertificateRequest('inst1', 'oid1', 'oid', 'selfsigned', 'password', 'subject_dn', 'key_size')
password
はこのウォレットのパスワード、subject_dn
は証明書リクエストを生成する際に使用される識別名、key_size
はキー・サイズ(ビット単位)です。
次の手順を実行して、証明書、証明書リクエスト(CR)または信頼できる証明書をエクスポートします。
証明書管理ページにナビゲートします。Fusion Middleware Controlのウォレットの証明書管理ページへのアクセスに関する項を参照してください。
証明書、CRまたは信頼できる証明書を選択して、「エクスポート」をクリックします。
ダイアログ・ボックスが開き、証明書、CRまたは信頼できる証明書がテキスト・ボックスに表示されます。次のいずれかを実行できます。
Base64でエンコードされた証明書をコピーしてファイルに貼り付けます。
「証明書のエクスポート」または「信頼できる証明書のエクスポート」ボタンを使用して、ファイルに直接エクスポートします。
インスタンス名をinst1
とすると、次のコマンドを使用して証明書リクエストをエクスポートします。
exportWalletObject('inst1', 'oid1', 'oid', 'selfsigned', 'password', 'CertificateRequest', '/tmp', 'subject_dn')
password
はこのウォレットのパスワード、/tmp
はBASE64形式で証明書リクエストがエクスポートされるファイルbase64.txt
を含むディレクトリのパス、subject_dn
はエクスポートされる証明書リクエストの識別名です。
証明書または信頼できる証明書をエクスポートするには、前述のコマンドの中のCertificateRequest
をCertificate
またはTrustedCertificate
に置き換えます。
注意: DERでエンコードされた証明書または信頼できる証明書をOracleウォレットにインポートするには、Fusion Middleware Controlは使用できません。かわりに、次のツールのいずれかを使用します。
|
次の手順を実行して、証明書または信頼できる証明書をインポートします。
証明書管理ページにナビゲートします。Fusion Middleware Controlのウォレットの証明書管理ページへのアクセスに関する項を参照してください。
「インポート」をクリックします。
「証明書のインポート」ダイアログで、証明書または信頼できる証明書のいずれかを選択できます。
インポートには、次の2つの方法があります。
Base64でエンコードされた証明書または信頼できる証明書をテキスト・ボックスに貼り付けます。
ファイル・セレクタを使用してファイル・システムを参照し、Base64でエンコードされた証明書または信頼できる証明書を含むファイルを見つけます。
「OK」をクリックします。
注意: DERでエンコードされた証明書または信頼できる証明書をOracleウォレットにインポートするには、WLST コマンドライン・ツールは使用できません。かわりに、次のツールのいずれかを使用します。
|
インスタンス名をinst1
とすると、次のコマンドを使用してウォレットに証明書をインポートします。
importWalletObject('inst1', 'oid1', 'oid', 'selfsigned', 'password', 'Certificate', '/tmp/cert.txt')
password
はこのウォレットのパスワードで、/tmp/cert.txt
はBASE64でエンコードされた証明書を含むファイルです。
信頼できる証明書をインポートするには、前述のコマンドの中のCertificate
をTrustedCertificate
に置き換えます。
次の手順を実行して、CR、証明書または信頼できる証明書を削除します。
証明書管理ページにナビゲートします。Fusion Middleware Controlのウォレットの証明書管理ページへのアクセスに関する項を参照してください。
証明書リクエスト、証明書または信頼できる証明書を含む行を選択します。
「削除」をクリックします。
確認を求めるダイアログ・ボックスが表示されます。
「はい」をクリックします。
そのオブジェクトは「証明書の管理」リストに表示されなくなります。
インスタンス名をinst1とすると、次のコマンドを使用して証明書を削除します。
removeWalletObject('inst1', 'oid1', 'oid', 'selfsigned', 'password', 'Certificate', 'subject_dn')
password
はこのウォレットのパスワードで、subject_dn
は削除する証明書の識別名です。
証明書リクエストまたは信頼できる証明書を削除するには、前述のコマンドの中のCertificate
をCertificateRequest
またはTrustedCertificate
に置き換えます。
ウォレットに存在する自己署名証明書は、認証局(CA)で署名されたサード・パーティ証明書に変換できます。次の手順を実行して、このタスクを実行します。
注意: この手順はOracle Internet Directoryで使用するものですが、Oracle HTTP ServerおよびOracle Web Cacheで使用するウォレットの生成にも同様の手順を適用できます。 |
ナビゲーション・ペインからコンポーネント・インスタンスを見つけます。
「component_name」→「セキュリティ」→「ウォレット」にナビゲートします。
ウォレットのリストから自己署名証明書が格納されているウォレットを選択します。
「証明書の管理」ページが表示されます。ウォレット内の証明書の一覧が含まれます。
変換対象の自己署名証明書用に新しい証明書リクエストを生成する必要があります。自己署名証明書を選択して、「証明書リクエストの追加」をクリックします。ダイアログ・ボックスが表示されます。
証明書リクエスト(CR)の詳細を入力して、「OK」をクリックします。
CRが生成されます。次のいずれかを実行できます。
Base64でエンコードされた証明書リクエストをコピーしてファイルに貼り付けます。
「証明書リクエストのエクスポート」ボタンを使用して、ファイルに直接エクスポートします。
証明書リクエスト・ファイルを認証局に送信して、証明書を生成します。これは、証明書取得のローカル・ポリシーに従って実行できるオフラインの手順です。
CAは証明書リクエストに署名して、証明書を生成します。CAは、次のいずれかを返送します。
1個のファイル。新しく生成された証明書と独自のCA証明書の両方がpkcs7
形式で含まれます。
2個のファイル。一方には新しく生成された証明書、もう一方には独自のCA証明書が含まれます。
「インポート」を使用して、これらのファイルをウォレットにインポートします。
CAから1個のファイルを受信した場合は、置き換える自己署名証明書の別名(ステップ3を参照)と一致する別名を使用して、信頼できる証明書としてインポートします。
2個のファイルを受信した場合は、次の手順を実行します。
CA証明書が含まれるファイルを信頼できる証明書としてインポートします(ウォレット内で一意の別名を使用)。
証明書ファイルを証明書としてインポートします(置き換える自己署名証明書の別名と一致する別名を使用)。
注意: 順序は重要です。信頼できる証明書、証明書の順にインポートする必要があります。 |
CAから1個のファイルが返され、これを信頼できる証明書としてインポートします。
インポート後に、CAが発行した証明書で自己署名証明書が置き換えられます。
次の手順を実行し、WLSTを使用して自己署名証明書をサード・パーティ証明書に変換します。
証明書リクエストを追加します。たとえば、次のように指定します。
addCertificateRequest('inst1', 'oid1', 'oid', 'selfsigned', 'password', 'subject_dn', 'key_size')
証明書リクエストをエクスポートします。
exportWalletObject('inst1', 'oid1', 'oid', 'selfsigned', 'password', 'CertificateRequest', '/tmp', 'subject_dn')
証明書リクエスト/tmp/base64.txt
を認証局に送信します。CAは、PKCS#7形式の1つのファイルまたは2つの別々のファイルとして、新しく生成された証明書と独自の証明書を返送します。
CAから1個のファイルを受信した場合は、次のコマンドを実行します。
importWalletObject('inst1', 'oid1', 'oid', 'selfsigned', 'password', 'TrustedChain', '/tmp/cert.txt')
password
はこのウォレットのパスワード、/tmp/cert.txt
はCAから返され、BASE64でエンコードされたPKCS#7を含むファイルです。
CAから2個のファイルを受信した場合は、信頼できる証明書としてCA証明書を最初にインポートし、次に新しく生成された証明書をインポートします。
importWalletObject('inst1', 'oid1', 'oid', 'selfsigned', 'password', 'TrustedCertificate', '/tmp/cacert.txt') importWalletObject('inst1', 'oid1', 'oid', 'selfsigned', 'password', 'Certificate', '/tmp/cert.txt')
password
はこのウォレットのパスワード、/tmp/cert.txt
はCAから返され、BASE64でエンコードされた証明書を含むファイル、/tmp/cacert.txt
はBASE64でエンコードされたCA証明書を含むファイルです。
この項では、様々なコンポーネントのウォレットの場所について説明します。
Oracle Internet Directoryウォレットのルート・ディレクトリ
ウォレットのルート・ディレクトリは、$ORACLE_INSTANCE/OID/admin
です。
このルート・ディレクトリには、ウォレットの名前がついたサブディレクトリが入ります。それぞれのサブディレクトリには実際のウォレット・ファイルが格納されます。
たとえば、oid1
とoid2
という2つのウォレットがあるとします。それぞれのサンプル構造は、次のようになります。
$ORACLE_INSTANCE/OID/admin/oid1/cwallet.sso $ORACLE_INSTANCE/OID/admin/oid1/ewallet.p12 $ORACLE_INSTANCE/OID/admin/oid2/cwallet.sso
Oracle HTTP Serverウォレットのルート・ディレクトリ
ウォレットのルート・ディレクトリは、$ORACLE_INSTANCE/config/OHS
/ohs_instance_name
/keystores
です。
このルート・ディレクトリには、ウォレットの名前がついたサブディレクトリが入ります。それぞれのサブディレクトリには実際のウォレット・ファイルが格納されます。
たとえば、ohs1
とohs2
という2つのウォレットがあるとします。それぞれのサンプル構造は、次のようになります。
$ORACLE_INSTANCE/config/OHS/ohs_instance1/keystores/ohs1/cwallet.sso $ORACLE_INSTANCE/config/OHS/ohs_instance1/keystores/ohs1/ewallet.p12 $ORACLE_INSTANCE/config/OHS/ohs_instance1/keystores/ohs2/cwallet.sso
Oracle Web Cacheウォレットのルート・ディレクトリ
ウォレットのルート・ディレクトリは、$ORACLE_INSTANCE/config/WebCache
/webcache_instance_name
/keystores
です。
このルート・ディレクトリには、ウォレットの名前がついたサブディレクトリが入ります。それぞれのサブディレクトリには実際のウォレット・ファイルが格納されます。
たとえば、wc1
とwc2
という2つのウォレットがあるとします。それぞれのサンプル構造は、次のようになります。
$ORACLE_INSTANCE/config/WebCache/webcache_instance1/keystores/wc1/cwallet.sso $ORACLE_INSTANCE/config/WebCache/webcache_instance1/keystores/wc1/ewallet.p12 $ORACLE_INSTANCE/config/WebCache/webcache_instance1/keystores/wc2/cwallet.sso
一般的には、ウォレットのDNはウォレットが使用されるサーバーのホスト名に基づいています。
たとえば、ウォレットがOracle HTTP Serverのmy.oracle.comで作成されている場合、このOracle HTTP Serverウォレットの証明書のDNは「CN=my.example.com,O=organization name
」のようになります。
ほとんどのクライアントはSSLハンドシェイク時にホスト名を検証するため、この同期は必須です。
ホスト名の検証を実行するクライアントには、WebブラウザやOracle HTTPClientなどがあります。サーバーのホスト名が証明書のDNと一致しない場合、次のように処理されます。
明確な警告が表示されます(ブラウザ・クライアントの場合)。
SSLハンドシェイクが失敗する場合があります(その他のクライアントの場合)。
クライアントからリクエストを受信しているサーバー上にウォレットがある場合、このサーバーのホスト名が変更されるたびに、ウォレット内の証明書も更新する必要があります。
これは、新しいDN(新しいホスト名に基づく)で新しい証明書をリクエストすることで実行できます。
本番のウォレットの場合
手順は次のとおりです。
新しいDN(新しいホスト名に基づく)で新しいリクエストを生成します。
このリクエストを認証局(CA)に送信します。
CAから新しい証明書が返送されます。
ウォレットから古い証明書および証明書リクエストを削除します。
新しい証明書をインポートします。
自己署名付きウォレットの場合
手順は次のとおりです。
既存のウォレットを削除します。
新しいDN(新しいホスト名に基づく)を使用して自己署名証明書を含む新しいウォレットを作成します。
本番ウォレットの場合も自己署名付きウォレットの場合も、新しい証明書がウォレットで使用可能になったら、その証明書を信頼する必要があるすべてのコンポーネントのウォレットに確実にインポートする必要があります。たとえば、Oracle WebLogic ServerでSSLが有効な場合、ホスト名の変更によってOracle WebLogic Serverの証明書が変更されたら、新しい証明書をOracle HTTP Serverウォレットにインポートして、新しいピアを信頼できるようにする必要があります。
自己署名付きウォレットをサード・パーティのウォレットに変換できます。サード・パーティのウォレットには、信頼できる認証局(CA)が署名した証明書が含まれます。
「CN=my.example.com,O=example
」というDNの証明書が格納された、MYWallet
という自己署名付きウォレットがあるとすると、次の手順を実行して、これをサード・パーティのウォレットに変換します。
ウォレットからユーザー証明書「CN=my.example.com,O=example
」を削除します。
ウォレットから信頼できる証明書「CN=my.example.com,O=example
」を削除します(これは、ユーザー証明書と同じDNですが、別のエンティティです)。
ウォレットから証明書リクエスト「CN=my.example.com,O=example
」をエクスポートして、ファイルに保存します。
この証明書リクエスト・ファイルをVeriSignなどのサード・パーティの認証局(CA)に送信します。
CAは、次のいずれかを返送します。
ユーザー証明書ファイルと独自の証明書ファイル
ユーザー証明書と独自の証明書で構成された証明連鎖を含む単一のファイル
これらのファイルをウォレットにインポートします。
期限が切れそうな証明書は、実際に期限が切れる前に置き換えて、アプリケーションの停止時間を回避または短縮する必要があります。
期限が切れそうな証明書を置き換える手順は次のとおりです。
ウォレットから証明書リクエストをエクスポートします(これは、現在期限が切れそうな証明書の発行時と同じリクエストです)。
証明書発行のために、この証明書リクエストをサード・パーティの認証局(CA)に送信します。新しい証明書の発効日は、現在の証明書の失効日より早くしてください。停止時間を短縮するために、このような重複期間を設けることをお薦めします。
注意: サード・パーティのCAがすでにリポジトリの証明書リクエストを保守している場合、ステップ1と2は不要です。その場合は、単純にその証明書リクエストの新しい証明書の発行をCAにリクエストします。 |
ウォレットから既存の証明書(期限が切れそうな証明書)を削除します。
新しく発行された証明書をウォレットにインポートします。
停止時間を短縮するために、新しい証明書が有効になり古い証明書が失効していない重複期間に、前の証明書を削除して新しい証明書をインポートします。
新しい証明書が元の証明書の発行元以外のCAで発行された場合は、新しく発行された証明書をインポートする前に、新しいCAの信頼できる証明書をインポートする必要があります。