MicroStrategy ONE
为 PostgreSQL 和存储服务配置 SSL
可以将 Microstrategy Storage 服务和 PostgreSQL 数据库之间的通信配置为使用 SSL 进行加密和身份验证。查看PostgreSQL 文档了解更多信息。
PostgreSQL 服务器端配置
您必须安装 OpenSSL 1.1.0 或更高版本。
如果您已为 Platform Analytics 或 Collaboration Service 配置了 PostgreSQL 服务器端,请跳至客户端设置通过使用生成的 server.key
和 root.crt
-
以管理员身份运行 OpenSSL 应用程序以生成私钥。生成私钥时必须提供密码。
openssl
由于命令是使用 OpenSSL 应用程序执行的,因此不包含在每行的开头。如果证书和密钥是在 Unix 系统或 Windows 命令行上生成的,则可能需要包含openssl
在每一行之前。复制genrsa -out server.key 1024
-
创建服务器证书。
可能需要重新启动 OpenSSL 应用程序才能成功创建服务器证书。
-subj
是避免提示信息的快捷方式。-x509
生成自签名证书而不是证书请求。复制req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=your.domain.com"
-
打开命令提示符或文件资源管理器并导航到服务器证书所在的位置。
-
复制新创建的服务器证书以创建证书颁发机构。
复制copy server.crt root.crt
-
将下面显示的行添加到
postgres.conf
。复制listen_addresses = '*' # what IP address(es) to listen on;
-
取消注释并修改以下代码。
复制ssl = on
ssl_ca_file = '\\LOCATION_OF_FILE\\root.crt'
ssl_cert_file = '\\LOCATION_OF_FILE\\server.crt'
ssl_key_file = '\\LOCATION_OF_FILE\\server.key'
ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
ssl_prefer_server_ciphers = on -
在
pg_hba.conf
,添加或者修改下面的代码。您可能需要注释掉主机条目。
hostssl
为 DB_USERNAME 强制实施 SSL。clientcert=1
强制客户端身份验证(双向身份验证)。复制hostssl mstr_library DB_USERNAME CLIENT_IP/32 cert clientcert=1
-
保存两个文件中的更改。
-
选择开始 > 服务并重新启动 PostgreSQL 或 MicroStrategy Repository。
客户端设置
完成PostgreSQL服务器端配置后,可以开始客户端配置和设置。这将为存储服务生成证书和密钥。
您必须为 mstr_library
用户和 mstr_library_application
用户。
-
创建私钥和证书
mstr_library
用户:复制genrsa -out mstr_library.key 1024
req -new -key mstr_library.key -out mstr_library.csr -subj "/CN=mstr_library"
x509 -req -in mstr_library.csr -CA root.crt -CAkey server.key -out mstr_library.crt -CAcreateserial如果收到错误,可能需要注释掉
tsa_policy1
在openssl.cnf
。保存并以管理员身份重新启动 openssl。复制# Policies used by the TSA examples.
#tsa_policy1 = 1.2.3.4.1
tsa_policy2 = 1.2.3.4.5.6
tsa_policy3 = 1.2.3.4.5.7 -
使用以下命令将私钥转换为 DER 格式。
存储服务使用的 JDBC PostgreSQL 驱动程序要求密钥文件采用 DER 格式,而不是 PEM 格式。
复制pkcs8 -topk8 -inform PEM -outform DER -in mstr_library.key -out mstr_library.pk8 -nocrypt
-
与步骤 1 和 2 类似,创建私钥和证书
mstr_library_application
用户:复制genrsa -out mstr_library_application.key 1024
req -new -key mstr_library_application.key -out mstr_library_application.csr -subj "/CN=mstr_library_application"
x509 -req -in mstr_library_application.csr -CA root.crt -CAkey server.key -out mstr_library_application.crt -CAcreateserial
pkcs8 -topk8 -inform PEM -outform DER -in mstr_library_application.key -out mstr_library_application.pk8 -nocrypt -
复制在库服务器上创建的文件并更新
configOverride.properties
使用证书和密钥的绝对路径。选择
configOverride.properties
文件可以在以下位置找到:Windows:
<DEPLOY_LOCATION>\webapps\MicroStrategyLibrary\WEB-INF\classes\config\ConfigOverride.properties
Linux:
<DEPLOY_LOCATION>/webapps/MicroStrategyLibrary/WEB-INF/classes/config/configOverride.properties
复制#postgresql database connection config
datasource.url=jdbc:postgresql://YOUR_HOST:5432/mstr_library
datasource.tlsEnabled=true
datasource.sslMode=require
datasource.sslRootCert=/LOCATION_OF_FILE/root.crt
#for Windows: datasource.sslRootCert=Z:\LOCATION_OF_FILE\root.crt
datasource.username=mstr_library_application
datasource.password=<any string>
datasource.sslCert=/LOCATION_OF_FILE/mstr_library_application.crt
datasource.sslKey=/LOCATION_OF_FILE/mstr_library_application.pk8
datasource.admin.username=mstr_library
datasource.admin.password=<any string>
datasource.admin.sslCert=/LOCATION_OF_FILE/mstr_library.crt
datasource.admin.sslKey=/LOCATION_OF_FILE/mstr_library.pk8