MicroStrategy ONE

証明書ストアを MicroStrategy Library に統合

証明書ストアは元々、REST API を介して外部に公開するデータ源として機能します。公開するのは Workstation の [証明書] セクションに表示するデータです。

MicroStrategy Library との統合

証明書ストアを MicroStrategy Library に統合する手順は簡単で、Library をインストールする際、[証明書ストア] をオンにするだけです。すると証明書ストアの REST API が、MicroStrategy REST API スイートの一部として現れるようになります。

証明書ストアREST API( /api/サービス証明書)は他のAPIと同じウェブエンドポイントから提供されますが、実際には/api/サービス証明書エンドポイントは実際には証明書ストア サーバーにリダイレクトされます。これを実現するのが、Library の web.xml ファイルに設定したプロキシー サーブレットです。

サーブレットはインストーラによって設定され、url-patternプロパティに一致するすべてのURLを取得し、それらをターゲットURI財産。これらの設定を変更してSSLサポートを追加または削除する場合は、ターゲットURIプロパティを変更して、「http」または「https」のいずれかを指定します。

自己署名証明書を使用する場合は、trustAllCertificatesおよびdisableHostnameVerificationプロパティを次のように設定する必要があります。真実。ユーザーが自己署名証明書からCA割り当て証明書に切り替える場合、両方の証明書を次のように設定する必要があります。間違い CA が割り当てた証明書のメリットを享受できます。

コピー
<servlet>
<servlet-name>CertificateManagerService</servlet-name>
<servlet-class>org.mitre.dsmiley.httpproxy.ProxyServlet</servlet-class>
<init-param>
<param-name>targetUri</param-name>
<param-value>http://localhost:5050/api/serviceCertificates</param-value>
</init-param>
<init-param>
<param-name>log</param-name>
<param-value>true</param-value>
</init-param>
<!-- SSL SUPPORT START - The following group of parameters are only relevant when the targetUri above uses the "https" protocol. -->
<init-param>
<param-name>truststorePath</param-name>
<param-value>{PATH_TO_TRUSTSTORE}</param-value>
</init-param>
<init-param>
<param-name>truststoreType</param-name>
<param-value>PKCS12</param-value>
</init-param>
<init-param>
<param-name>truststorePassword</param-name>
<param-value>{TRUSTSTORE_PASSWORD_OR_BLANK_IF_NONE}</param-value>
</init-param>
<init-param>
<param-name>keyPassword</param-name>
<param-value>{KEY_PASSWORD_OR_BLANK_IF_NONE}</param-value>
</init-param>
<!-- DEVELOPMENT - START - The following parameters are for development/debugging use only and should not be set to TRUE in production systems. -->
<init-param>
<param-name>trustAllCertificates</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>disableHostnameVerification</param-name>
<param-value>false</param-value>
</init-param>
<!-- DEVELOPMENT END -->
<!-- SSL SUPPORT END -->
</servlet>
<servlet-mapping>
<servlet-name>CertificateManagerService</servlet-name>
<url-pattern>/api/serviceCertificates/*</url-pattern>
</servlet-mapping>

ここで、

  • トラストストアパストラストストアをロードするために使用されます。 ServletContext.getResourceAsStream()

    このメソッドのパスルールは、 Oracle ドキュメント。パスはスラッシュで始まる必要があります(/)であり、現在のコンテキストルートまたは/META-INF/リソースウェブアプリケーションの / 内の JAR ファイルのディレクトリWEB-INF/libディレクトリ。パス区切り文字はスラッシュ( / ) を Unix と Windows の両方で使用できます。

  • トラストストアタイプさまざまなキーストア/トラストストアタイプを受け入れます。完全なリストについては、 Java SE ドキュメント。MicroStrategy は JKS と PKCS12 に対応しています。

証明書ストアの設定プロパティ

証明書ストアの設定は、アプリケーションプロパティファイル。パラメーターはすべて大文字と小文字の区別があるので、正確に入力してください。

アプリケーションプロパティ以下の場所にあります:

  • ウィンドウズ: <インストールパス>\MicroStrategy\証明書マネージャー
  • リナックス: <インストールパス>/証明書マネージャー

このファイルには次のプロパティが含まれています。

プロパティ 詳細 メモ

server.address

証明書ストアが REST API 要求を待ち受ける IP アドレス。デフォルト値は 127.0.0.1 で、同じコンピューター上のプロセスのみアクセスできるよう、制限することになります。

無制限にあらゆる IP アドレスから待ち受ける場合は「0.0.0.0」を指定してください。

これら3つの設定を変更した場合は、必ず対応する変更を行ってください。ターゲットURI上記のプロキシ サーブレットのプロパティ。

 

server.port

証明書ストアが REST API 要求を待ち受ける IP ポート。

server.servlet.context-path

証明書ストアのエンドポイントのパス。

server.ssl.key-store

PKCS12 または PFX キー ストア ファイルへのパス。

例えばクラスパス:/opt/mstr/MicroStrategy/install/

your-cert.crt

 

証明書ストアの REST API が HTTPS 上で動作する場合のみ、設定が必要です。

 

server.ssl.key-store-password

キーストア ファイルのパスフレーズ

server.ssl.key-password

キーストアに含まれるキーのパスフレーズ

server.ssl.keyStoreType

キーストアの種類 (デフォルト値は PKCS12)

server.ssl.key-alias

キーストア内のキーの別名 (キーストアにキーが複数ある場合に使用)

max.certificate.retrieval.time.seconds

証明書をすべて所定のサービスから取得するために割り当てる最大時間。デフォルト値は 30 秒です。11.1 で定義されたサービスに関しては、これで充分であるはずです。

 

consul.host

Consul エージェントの IP アドレス

定義されたサービスのリストを取得するために働く Consul エージェントと、このリストを取得し直す (更新する) 頻度を制御します。多くの場合、デフォルト値のままで充分であり、変更する必要はありません。

consul.port

Consul エージェントの IP ポート

consul.initialDelay.milliseconds

Consul に最初に接続するまでの遅延 (ミリ秒単位)

consul.fixedRate.milliseconds

Cosul に接続する間隔 (ミリ秒単位)

wss.server.host

Socket.io の IP アドレス

これらの2つの設定は、ソケット.io GUI が非同期を受信するために接続できるエンドポイント。既存のサービスとその証明書の状態に関する更新。ファイアウォールは、このエンドポイントへのWebSocketアクセスを許可する必要があることに注意してください(ソケット.ioコラボレーションサーバーでの接続)

wss.server.port

Socket.io の IP ポート

spring.mail.host

メール サーバーの IP アドレス

証明書ストアが電子メール ホストと通信する方法を設定します。デフォルトでは SMTP で通信します。ただし、IP アドレスなどの指定が必要です。インストールの時点では未設定になっているので、別途指定してください。

spring.mail.port

メール サーバーの IP ポート

spring.mail.protocol

メール サーバーとやり取りするプロトコル (SMTP)

spring.mail.properties.mail.smtp.connectiontimeout

メール ホストとの接続に関するタイムアウト

spring.mail.properties.mail.smtp.timeout

 

spring.mail.properties.mail.smtp.writetimeout

メール ホストへのデータ送信に関するタイムアウト

spring.mail.default-encoding

メール ホストにデータを送信する際のエンコーディング

expiry.notification.days

 

証明書ストアは定期的に見つかった証明書をスキャンして、期限切れになった証明書や今後期限切れになる証明書を探します。有効期限通知日数 } 日間。

これは、証明書のスキャン処理を制御し、通知の送信先メール アドレスを定義する設定です。

複数のメール アドレスを指定する場合は、次のようにカンマ区切りで記述してください:

expiry.notification.email=user1@domain.net,user2@domain.net

expiry.notification.email が空であれば、通知を送りません。

メールを送信するためには expiry.notification.email.from の指定も必要です。

expiration.check.initialDelay.milliseconds

証明書の期限切れを、初めてスキャンするまでの期間 (ミリ秒単位)。

expiration.check.fixedRate.milliseconds

証明書の期限切れをスキャンする間隔 (ミリ秒単位)。

expiry.notification.email

 

expiry.notification.email.from

 

profile.name

アプリケーション内でプロファイルの選択に使用される Spring フレームワーク。

プロファイルは、さまざまな構成プロパティを 1 つのファイルにまとめ、一括して適用できるようにしたものです。プロフィールを以下のもの以外に変更することはお勧めしません。製品

クラスター化環境における注意事項

証明書ストアのプロセスは通常、REST API 要求を localhost:5050 で待ち受けます。サーバーはループバック インターフェイスに束縛されているので、同じコンピューター上のプロセスしか API 要求できません。

クラスター化環境では、各ノードで証明書ストアのプロセスが走ります。証明書ストアは Consul に登録されたサービスをもとにデータを構築します。Consul には全ノードのエントリがあるので、証明書ストアにも、ある特定ノード上だけでなく、クラスターの全サービスに関するエントリが集まることになります。しかし、ループバック アドレスに束縛されたサービスがあると、クラスターに属する他のノードから証明書を取得できません。

Library に関するその他の注意事項

ライブラリのインストールに証明書ストアがない場合でも、プロキシサーブレットは設定できますが、ターゲットURI有効なエンドポイントを指しません。この場合、「502 Bad Gateway」エラー (または 5xx レベルの他の HTTP エラー) が発生します。その場合、証明書ストアを別途インストールするか、Library の web.xml ファイルからプロキシー サーブレットに関する設定を削除してください。