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