ライセンスタイプ | オンプレミス |
製品 | AssessとProtectの両方、もしくは単体 |
製品カテゴリ | Contrast UI |
サブカテゴリ | インストール/設定 |
本項の内容
Contrast EOPサーバでHTTPSを使用するには、認証局(CA:Certification Authority)で署名された証明書か自己証明書のいずれかが必要です。ここでは、Contrast EOPサーバで使用するCA証明書を作成するための方法をいくつか説明し、Contrast EOPサーバ(Tomcatベース)の実行時に使用するJavaキーストア(jks)を設定できるまでの手順について解説します。
手順
CA証明書の作成
方法 1 - キーストアを作成しCSRを認証局に送付する場合
この方法では、Javaのkeytoolコマンドを使用し、 contrast-server
というエイリアスを付けて公開鍵と秘密鍵が含まれるキーストアを作成します。以下のコマンドで、キーストアを作成します。この例では、キーストアはcontrast.jks
という名前になります。
keytool -genkeypair -alias contrast-server -keyalg RSA -keystore contrast.jks
次に、このキーストアから証明書署名要求(CSR)を作成します。以下の例では、contrast.csr
という名前のCSRが作成されます。
keytool -certreq -alias contrast-server -file contrast.csr -keystore contrast.jks -ext san=dns:your_hostname.your_company.com,ip:10.0.0.1
必要に応じてdnsやipフィールドを追加し、証明書にSubject Alternative Names(サブジェクトの別名)を含めることもできます。
次に、作成したCSRファイルを認証局に送信します。CSRの作成元のJKSファイルは、この後の手順で必要になるため保持してください。
以下のいずれかの形式で認証局から証明書が送信されます:
- PEM形式:ファイル拡張子が
.crt
か.pem
(ファイルを開いてみて読み取り可能なテキストであればPEMファイル)で、複数ファイルが提供される - PKCS#7形式:ファイル拡張子が
.p7b
か.cer
、場合によっては.crt
で、1ファイルが提供される
上記のいずれの形式でも、認証局から提供されたファイルを、以下の通りキーストアにインポートする必要があります。キーストアは、最初の手順で作成したものと同じキーストアを指定します。
- PEM形式(複数ファイル)の場合、そのうちの1つにはサーバ証明書自体が含まれ、残りのファイルにルート証明書と1つ以上の中間証明書が含まれることになります。これらの証明書は、上位から下位の順でキーストアにインポートする必要があります。サーバ証明書は最後にインポートしますが、最初にキーストア作成時に使用したものと同じエイリアスを指定します。例えば、
root.cer
、inter.cer
、server.cer
の場合、以下のようにインポートします。
keytool -import -trustcacerts -alias root -file root.cer -keystore contrast.jks
keytool -import -trustcacerts -alias intermediate -file inter.cer -keystore contrast.jks
keytool -import -trustcacerts -alias contrast-server -file server.cer -keystore contrast.jks
- PKCS#7の場合(例えば、
certificate.p7b
など)、1つのファイルに必要なルート証明書と中間証明書の全てがバンドルされてサーバ証明書に含まれますので、以下の通り1回でインポートできます(ここでも、キーストア作成時に使用したものと同じエイリアスを指定します)。
keytool -import -trustcacerts -alias contrast-server -file certificate.p7b -keystore contrast.jks
これで、Javaキーストア(本項の例では、contrast.jks
)をContrast EOPサーバで使用できます。
方法 2 - 認証局からPEMファイルと秘密鍵が提供された場合
方法1と同様に、認証局からルート証明書、中間証明書、サーバ証明書がPEM形式で複数ファイルで提供されますが、このケースではJavaキーストアがまだ存在しないため、秘密鍵が含まれたファイルも提供された場合です。例えば、server.crt
、inter.crt
、priv.key
があるとします。この場合、OpenSSLを使用してPFXストア(cert.pfx
)に結合し、keytoolを使用してJKSに変換する必要があります。
openssl pkcs12 -export -out cert.pfx -inkey priv.key -in server.crt -certfile inter.crt -name "contrast-server"
keytool -importkeystore -srckeystore cert.pfx -srcstoretype pkcs12 -destkeystore contrast.jks -deststoretype jks
これで、Javaキーストア(本項の例では、contrast.jks
)をContrast EOPサーバで使用できます。
方法 3 - 認証局からPKCS#12ファイルが提供された場合
方法2(Javaキーストアがまだ存在しない)と似ていますが、認証局からPKCS#12形式(通常、拡張子は.p12
か.pfx
)で1ファイルが発行された場合です。例えばstore.pfx
などで、1つのファイルに全ての証明書と秘密鍵が含まれます。 この場合、keytoolを使用してファイルを変換するだけです。
keytool -importkeystore -srckeystore store.pfx -srcstoretype pkcs12 -destkeystore contrast.jks -srcalias <sourcealias> -destalias contrast-server -deststoretype jks
PKCS#12形式で証明書のエイリアス名が不明な場合(例えば、Windowsサーバによって生成された場合など)は、次のコマンドを使用してエイリアス名を参照できます。
keytool -v -list -storetype pkcs12 -keystore store.pfx
これで、Javaキーストア(本項の例では、contrast.jks
)をContrast EOPサーバで使用できます。
Contrast EOPサーバでのHTTPSの有効化と設定
Javaキーストアの設定が完了したら、テキストエディタで$CONTRAST_HOME/data/conf/server.properties ファイルを開き、以下のプロパティを更新します。
https.enabled=true
https.port=<https接続でリッスンするポート>
https.keystore.file=<上記で作成したjksのフルパス>
https.keystore.pass=<上記で作成したjksのパスワード>
https.keystore.alias=<サーバのホスト名>
server.propertiesを更新したら、Contrast EOPサーバのサービスを再起動し、設定したHTTPSポートでリッスンされることを確認してください。
$CONTRAST_HOME/data/conf/general.properties ファイルを開き、teamserver.url
プロパティの値を編集して変更を反映します。
設定の詳細については、弊社ドキュメントを参照ください。