Strategy ONE

Zertifikatspeicher-Integration in MicroStrategy Library

Der Zertifikatspeicher dient in erster Linie als Datenquelle, die über eine REST-API bereitgestellt wird. Diese Datenquelle stellt die Daten zur Anzeige im Abschnitt „Zertifikate“ des Workstation-Fensters bereit.

Integration in MicroStrategy Library

Um den Zertifikatspeicher in MicroStrategy Library zu integrieren, können Sie bei der Installation von Library den Zertifikatspeicher auswählen. Dadurch wird sichergestellt, dass die Zertifikatspeicher-REST-API als Teil der gesamten MicroStrategy-REST-API-Suite angezeigt wird.

Während es also so aussieht, als ob die Zertifikatspeicher-REST-API (/api/serviceCertificates ) wird vom gleichen Web-Endpunkt wie die anderen APIs bereitgestellt, in Wirklichkeit Anforderungen an die /api/serviceCertificates -Endpunkt werden tatsächlich zum Zertifikatspeicher-Server umgeleitet. Diese Weiterleitung erfolgt über ein Proxy-Servlet, das in der Datei Library web.xml konfiguriert ist.

Das Servlet wird vom Installationsprogramm konfiguriert und akzeptiert alle URLs, die der Eigenschaft "url-pattern" entsprechen, zu der in "" angegebenen URL Ziel-Uri -Eigenschaft. Wenn Sie diese Einstellungen ändern, um SSL-Unterstützung hinzuzufügen oder zu entfernen, müssen Sie aktualisieren Ziel-Uri -Eigenschaft, sodass sie entweder "http" oder "https" angibt.

Wenn selbstsignierte Zertifikate verwendet werden, müssen die Eigenschaften 'trustAllCertificates' und 'disableHostnameVerification' auf festgelegt sein wahr. Wenn ein Benutzer von selbstsignierten zu von einer Zertifizierungsstelle zugewiesenen Zertifikaten wechselt, sollte er beide Zertifikate auf festlegen falsch um die Vorteile des von der Zertifizierungsstelle zugewiesenen Zertifikats zu nutzen.

Kopieren
<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>

Dabei gilt Folgendes:

  • TruststorePfad wird zum Laden des Truststores verwendet, der von verwaltet wird ServletContext.getResourceAsStream().  

    Die Pfadregeln für diese Methode finden Sie in der Oracle-Dokumentation. Der Pfad muss mit einem Schrägstrich beginnen (/ ) und wird als relativ zum aktuellen Kontextstammverzeichnis oder relativ zu interpretiert /META-INF/resources Verzeichnis einer JAR-Datei im / der WebanwendungWEB-INF/lib Verzeichnis. Das Pfadtrennzeichen ist ein Schrägstrich (/ ) unter Unix und Windows.

  • TruststoreType akzeptiert eine Vielzahl von Schlüsselspeicher-/Vertrauensspeichertypen, eine vollständige Liste finden Sie unter Java SE-Dokumentation. MicroStrategy unterstützt JKS und PKCS12.

Eigenschaften der Zertifikatspeicherkonfiguration

Die Einstellungen für den Zertifikatspeicher können durch Bearbeiten von geändert werden application.properties Datei. Bei allen Parametern muss die Groß-/Kleinschreibung beachtet werden, und sie müssen korrekt eingegeben werden, damit die Änderungen wirksam werden.

Die application.properties finden Sie in:

  • Windows: < INSTALL_PATH> \MicroStrategy\Certificate Manager
  • Linux: < INSTALL_PATH> /Certificate Manager

Diese Datei enthält die folgenden Eigenschaften:

Eigentum Details Hinweise

Serveradresse

Die IP-Adresse, die der Zertifikatspeicher zum Abhören eingehender REST-API-Anfragen verwendet. Standardmäßig ist dies auf 127.0.0.1 eingestellt, um den Zugriff auf Prozesse auf derselben Maschine einzuschränken.

Um auf allen IP-Adressen zu lauschen, geben Sie 0.0.0.0 als Adresse an.

Wenn Sie eine dieser drei Einstellungen ändern, nehmen Sie die entsprechende Änderung an vor Ziel-Uri -Eigenschaft des oben beschriebenen Proxy-Servlet.

 

Server Port

Der IP-Port, den der Zertifikatspeicher zum Abhören eingehender REST-API-Anfragen verwendet.

server.servlet.kontextpfad

Pfad zum Endpunkt des Zertifikatspeichers.

server.ssl.key-store

Der Pfad zur PKCS12- oder PFX-Keystore-Datei,

z. B classpath:/opt/mstr/MicroStrategy/install/

Ihr-Zertifikat.crt

 

Diese Einstellungen sind nur relevant, wenn die REST-API des Zertifikatsspeichers über HTTPS ausgeführt wird.

 

server.ssl.key-store-password

Passphrase für die Keystore-Datei

server.ssl.key-password

Passphrase für den im Schlüsselspeicher enthaltenen Schlüssel

server.ssl.keyStoreType

Typ des Schlüsselspeichers, Standard ist PKCS12

server.ssl.key-alias

Alias des Schlüssels im Schlüsselspeicher, wird verwendet, wenn der Schlüsselspeicher mehrere Schlüssel enthält

Max. Zeit für den Zertifikatsabruf in Sekunden

Maximale Zeitdauer, die zum Abrufen aller Zertifikate von definierten Diensten benötigt wird. Der Standardwert beträgt 30 Sekunden, was für die in 11.1 definierten Dienste mehr als ausreichend sein sollte.

 

consul.host

IP-Adresse des Consul-Agenten

Diese Einstellungen steuern, welcher Consul-Agent für die Liste der definierten Dienste kontaktiert wird und wie oft der Agent kontaktiert wird, um diese Liste zu aktualisieren. Die Standardeinstellungen sollten für die meisten Installationen ausreichend sein und Benutzer sollten sie nicht ändern müssen.

Hafenkonsul

IP-Port des Consul-Agenten

Konsul.initialDelay.Millisekunden

Verzögerung (in Millisekunden) vor der ersten Verbindung mit Consul

consul.fixedRate.Millisekunden

Intervall (in Millisekunden) zwischen jeder Verbindung zu Cosul

wss.server.host

Socket.io-IP-Adresse

Diese beiden Einstellungen steuern Socket.io Endpunkt, mit dem GUIs eine Verbindung herstellen können, um Asynchrone zu empfangen. Aktualisierungen bezüglich der vorhandenen Dienste und des Status ihrer Zertifikate. Beachten Sie, dass die Firewall WebSocket-Zugriff auf diesen Endpunkt zulassen muss (ähnlich wie bei ). Socket.io Verbindung im Collaboration Server)

wss.server.port

Socket.io-IP-Port

spring.mail.host

IP-Adresse des Mailservers

Diese Einstellungen konfigurieren, wie der Zertifikatsspeicher mit einem E-Mail-Host kommuniziert. Standardmäßig wird SMTP verwendet, der Benutzer muss jedoch die IP-Adresse usw. angeben. Dies wird standardmäßig nicht vom Installationsprogramm konfiguriert und muss vom Benutzer manuell aktiviert werden.

spring.mail.port

IP-Port des Mailservers

spring.mail.protocol

Mailserver-Protokoll (SMTP)

spring.mail.properties.mail.smtp.connectiontimeout

Zeitüberschreitung bei der Verbindung zum Mail-Host

spring.mail.properties.mail.smtp.timeout

 

spring.mail.properties.mail.smtp.writetimeout

Zeitüberschreitung beim Senden von Daten an den Mail-Host

spring.mail.default-encoding

Zum Senden von Daten an den Mail-Host verwendete Verschlüsselung

Ablauf.Benachrichtigung.Tage

 

Der Zertifikatspeicher durchsucht die gefundenen Zertifikate regelmäßig nach Zertifikaten, die abgelaufen sind oder in den nächsten { ablaufen werden.expiry.notification.days } Tage.

Diese Einstellungen steuern den Zertifikatsscanvorgang und definieren, welche E-Mail-Adresse die Benachrichtigungen erhält.

Mehrere E-Mail-Adressen können durch Komma-getrennte Listen angegeben werden, z. B.

Ablauf.Benachrichtigung.E-Mail=Benutzer1@Domäne.net,Benutzer2@Domäne.net

Wenn „expiry.notification.email“ leer ist, werden keine Benachrichtigungen gesendet.

Damit E-Mails erfolgreich gesendet werden können, muss expiry.notification.email.from angegeben werden.

Ablauf.Prüfung.Anfangsverzögerung.Millisekunden

Verzögerung (in Millisekunden), bevor Zertifikate auf abgelaufene Zertifikate überprüft werden.

Ablauf.Prüfung.FesteRate.Millisekunden

Intervall zwischen jedem Scan für abgelaufene/ablaufende Zertifikate.

Ablaufbenachrichtigungs-E-Mail

 

Ablaufbenachrichtigungs-E-Mail von

 

Profilname

Eine Spring-Framework-Einstellung, die zum Auswählen eines Profils innerhalb der Anwendung verwendet wird.

Ein Profil fasst verschiedene Konfigurationseigenschaften in einer Datei zusammen, sodass sie gemeinsam angewendet werden können. Es wird nicht empfohlen, das Profil in etwas anderes zu ändern als prod.

Überlegungen zu Clusterumgebungen

Der Zertifikatspeicherprozess lauscht normalerweise auf localhost:5050 auf REST-API-Anfragen. Der Server ist an die Loopback-Schnittstelle gebunden, sodass nur Prozesse auf derselben Maschine API-Anfragen stellen können.

In einer Clusterumgebung gibt es auf jedem Knoten einen Zertifikatspeicherprozess. Da der Zertifikatspeicher seine Daten aus den bei Consul registrierten Diensten erstellt und Consul Einträge für alle Knoten enthält, enthält der Zertifikatspeicher Einträge für alle Dienste im Cluster und nicht für die Dienste auf dem aktuellen Knoten. Da einige Dienste jedoch an die Loopback-Adresse gebunden sind, können einige Zertifikate nicht von anderen Knoten im Cluster abgerufen werden.

Weitere Überlegungen zu Library

Wenn Ihre Library-Installation nicht über einen Zertifikatspeicher verfügt, ist das Proxy-Servlet möglicherweise dennoch konfiguriert Ziel-Uri verweist nicht auf einen gültigen Endpunkt. Benutzer mit dieser Konfiguration erhalten einen 502 Bad Gateway-Fehler (oder andere HTTP-Fehler auf 5xx-Ebene). Um diese Fehler zu beheben, können Sie den Zertifikatspeicher installieren oder die Proxy-Servlet-Konfiguration aus der Datei Library web.xml entfernen.