CA証明書を使用してContrast EOPにHTTPSを設定する

  • 更新
ライセンスタイプ オンプレミス
製品 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ファイルが提供される

上記のいずれの形式でも、認証局から提供されたファイルを、以下の通りキーストアにインポートする必要があります。キーストアは、最初の手順で作成したものと同じキーストアを指定します。

  1.  PEM形式(複数ファイル)の場合、そのうちの1つにはサーバ証明書自体が含まれ、残りのファイルにルート証明書と1つ以上の中間証明書が含まれることになります。これらの証明書は、上位から下位の順でキーストアにインポートする必要があります。サーバ証明書は最後にインポートしますが、最初にキーストア作成時に使用したものと同じエイリアスを指定します。例えば、 root.cer、 inter.cerserver.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
  1.  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.crtinter.crtpriv.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プロパティの値を編集して変更を反映します。

設定の詳細については、弊社ドキュメントを参照ください。

この記事は役に立ちましたか?

0人中0人がこの記事が役に立ったと言っています

他にご質問がございましたら、リクエストを送信してください