为 OpenSearch Dashboards 配置 TLS
默认情况下,为便于测试和入门,OpenSearch Dashboards 通过 HTTP 运行。要为 HTTPS 启用 TLS,请在 opensearch_dashboards.yml
中更新以下设置。
设置 | 描述 |
---|---|
server.ssl.enabled | 启用 OpenSearch Dashboards 服务器与用户网页浏览器之间的 SSL 通信。HTTPS 设置为 true ,HTTP 设置为 false 。 |
server.ssl.supportedProtocols | 指定支持的 TLS 协议数组。可能的值包括 TLSv1 、TLSv1.1 、TLSv1.2 和 TLSv1.3 。默认值为 ['TLSv1.1', 'TLSv1.2', and 'TLSv1.3'] 。 |
server.ssl.cipherSuites | 指定 TLS 密码套件数组。可选。 |
server.ssl.certificate | 如果 server.ssl.enabled 设置为 true ,则指定 OpenSearch Dashboards 有效 PEM(Privacy Enhanced Mail)服务器证书的完整路径。您可以生成自己的证书或从证书颁发机构 (CA) 获取证书。 |
server.ssl.key | 如果 server.ssl.enabled 设置为 true ,则指定服务器证书密钥的完整路径,例如 /usr/share/opensearch-dashboards-1.0.0/config/my-client-cert-key.pem 。您可以生成自己的证书或从 CA 获取证书。 |
server.ssl.keyPassphrase | 设置密钥的密码。如果密钥没有密码,请省略此设置。可选。 |
server.ssl.keystore.path | 使用 JKS (Java KeyStore) 或 PKCS12/PFX (Public-Key Cryptography Standards) 文件代替 PEM 证书和密钥。 |
server.ssl.keystore.password | 设置密钥库的密码。必填。 |
server.ssl.clientAuthentication | 指定要使用的 TLS 客户端身份验证模式。可以是以下之一:none (无)、optional (可选)或 required (必填)。如果设置为 required ,您的网页浏览器需要发送一个由 server.ssl.certificateAuthorities 中配置的 CA 签名的有效客户端证书。默认值为 none 。 |
server.ssl.certificateAuthorities | 指定一个或多个用于客户端身份验证的证书颁发机构 (CA) 证书的完整路径数组。如果 server.ssl.clientAuthentication 设置为 optional 或 required ,则此项为必填。 |
server.ssl.truststore.path | 使用 JKS 或 PKCS12/PFX 信任库文件代替 PEM CA 证书。 |
server.ssl.truststore.password | 设置信任库的密码。必填。 |
opensearch.ssl.verificationMode | 建立 OpenSearch 和 OpenSearch Dashboards 之间的通信。有效值为 full (完整)、certificate (证书)或 none (无)。如果启用了 TLS,建议使用 full ,它会启用主机名验证。certificate 会检查证书但不检查主机名。none 不执行任何检查(适用于 HTTP)。默认值为 full 。 |
opensearch.ssl.certificateAuthorities | 如果 opensearch.ssl.verificationMode 设置为 full 或 certificate ,则指定一个或多个 CA 证书的完整路径数组,该数组构成 OpenSearch 集群的信任链。例如,如果您使用中间 CA 颁发了管理员、客户端和节点证书,则可能需要包含根 CA *和* 中间 CA。 |
opensearch.ssl.truststore.path | 使用 JKS 或 PKCS12/PFX 信任库文件代替 PEM CA 证书。 |
opensearch.ssl.truststore.password | 设置信任库的密码。必填。 |
opensearch.ssl.alwaysPresentCertificate | 如果设置为 true ,则向 OpenSearch 集群发送客户端证书,这在 OpenSearch 中启用 mTLS 时是必需的。默认值为 false 。 |
opensearch.ssl.certificate | 如果 opensearch.ssl.alwaysPresentCertificate 设置为 true ,则指定 OpenSearch 集群有效客户端证书的完整路径。您可以生成自己的证书或从 CA 获取证书。 |
opensearch.ssl.key | 如果 opensearch.ssl.alwaysPresentCertificate 设置为 true ,则指定客户端证书密钥的完整路径。您可以生成自己的证书或从 CA 获取证书。 |
opensearch.ssl.keyPassphrase | 设置密钥的密码。如果密钥没有密码,请省略此设置。可选。 |
opensearch.ssl.keystore.path | 使用 JKS 或 PKCS12/PFX 密钥库文件代替 PEM 证书和密钥。 |
opensearch.ssl.keystore.password | 设置密钥库的密码。必填。 |
opensearch_security.cookie.secure | 如果为 OpenSearch Dashboards 启用了 TLS,请将此设置更改为 true 。对于 HTTP,请将其设置为 false 。 |
opensearch_security.session.keepalive | 确定会话 TTL 是否在每次用户活动时重置(保持“活跃”状态)。可选。默认值为 true 。 |
opensearch_security.session.ttl | 定义用户会话的生存时间 (TTL),单位为毫秒。可选。默认值为 3600000 (1 小时)。 |
以下 opensearch_dashboards.yml
配置显示了 OpenSearch 和 OpenSearch Dashboards 在同一台机器上运行,并使用了演示配置
server.host: '0.0.0.0'
server.ssl.enabled: true
server.ssl.certificate: /usr/share/opensearch-dashboards/config/client-cert.pem
server.ssl.key: /usr/share/opensearch-dashboards/config/client-cert-key.pem
opensearch.hosts: ["https://:9200"]
opensearch.ssl.verificationMode: full
opensearch.ssl.certificateAuthorities: [ "/usr/share/opensearch-dashboards/config/root-ca.pem", "/usr/share/opensearch-dashboards/config/intermediate-ca.pem" ]
opensearch.username: "kibanaserver"
opensearch.password: "kibanaserver"
opensearch.requestHeadersAllowlist: [ authorization,securitytenant ]
opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.preferred: ["Private", "Global"]
opensearch_security.readonly_mode.roles: ["kibana_read_only"]
opensearch_security.cookie.secure: true
如果您使用 Docker 安装选项,可以将自定义的 opensearch_dashboards.yml
文件传递给容器。要了解更多信息,请参阅 Docker 安装页面。
启用这些设置并启动应用程序后,您可以通过 https://:5601
连接到 OpenSearch Dashboards。如果您的证书是自签名的,您可能需要确认浏览器警告。为避免此类警告(或完全的浏览器不兼容),最佳实践是使用来自受信任 CA 的证书。