如果您正在监控远程机器上的应用程序,那么可能会希望保护您机器上 Health Center 客户机与远程机器上 Health Center 代理之间的连接。安全技术因连接类型而异,但可以包含简单的用户名和密码、MBean 认证或安全套接字层 (SSL)。
如果使用的是 IBM® Bluemix™,那么无安全选项可用。
关于此任务
将 Health Center 客户机连接到代理后,您可以从以下安全选项中进行选择以监控应用程序。
可用的选项取决于是选择了 JMX 还是 MQTT 连接。如果应用程序不是 Java™ 应用程序,那么必须使用 MQTT 连接。- 无安全性
- 该连接未加密,不需要使用用户名或密码。
- MBean 认证(仅限 JMX 连接)
- 该方法使用 JMX 技术。客户机与代理之间传递的数据未加密,但需要使用用户名和密码才能将客户机连接到代理。用户名和密码存储在您创建的认证文件中。
您还可以创建授权文件以指定该用户名的访问权。您可以向每个文件添加多个用户名。然后,使用 Health Center 属性指定这些文件的位置,以便代理可以找到这些文件。例如:
java -Xhealthcenter -Dcom.ibm.java.diagnostics.healthcenter.agent.authentication.file=/home/user/authentication.txt -Dcom.ibm.java.diagnostics.healthcenter.agent.authorization.file=/home/user/authorization.txt HelloWorld
- 简单认证(仅限 MQTT 连接)
- 该方法使用 MQTT 代理程序的用户名和密码。
要使用该方法,您必须设置代理程序的用户名和密码,然后在 Health Center 中指定该用户名和密码。
除在客户机中指定用户名和密码外,还必须使用 Health Center 属性文件来设置代理的用户名和密码。
- SSL 连接(仅限 JMX 连接)
- 将客户机连接到代理不需要使用用户名或密码,但将使用 SSL 协议对通过连接传递的数据进行加密。要使用该方法,必须同时为客户机和代理创建密钥库和公用/专用密钥对,然后交换公用密钥证书。客户机和代理必须能够找到并访问其各自的密钥库。对于客户机,在连接到代理时,您可在对话框中设置密钥库的位置和密码。对于代理,您可使用 Health Center 属性来设置位置和密码。
- SSL 连接和 MBean 认证(仅限 JMX 连接)
- 您可以使用基于 SSL 连接的 MBean 认证。必须为每个安全方法创建所需的文件。
过程
- 决定要使用的安全方法。
- 可选: 如果要使用 MBean 认证(仅限 JMX 连接),请完成以下步骤:
- 创建一个文件来存储 MBean 认证用户名和密码。 您可以对文件名、扩展名和位置使用任何值,只要 Health Center 代理能够访问该文件便可。例如,可能需要使该文件与代理位于同一台机器上。
用户名和密码只可使用字母数字字符;请勿使用空格或符号。对文件配置许可权,以使只有经过授权的用户才能查看内容。
例如,创建名为
authentication.txt 的文件,该文件包含以下内容:
myuser mypassw0rdanotheruser theirpassw0rd
- 创建授权文件,以对您先前指定的用户名指定读写访问权。
Health Center 代理也必须能够访问该文件。
通过在用户名后添加
readwrite 来指定读写访问权。例如,创建名为
authorization.txt 的文件,该文件包含以下内容:
myuser readwriteanotheruser readwrite
- 使用以下 Health Center 属性指定这些文件的位置,以便代理可以找到这些文件。
认证文件:
com.ibm.java.diagnostics.healthcenter.agent.authentication.file
授权文件:
com.ibm.java.diagnostics.healthcenter.agent.authorization.file
在启动应用程序或将 Health Center 代理连接到正在运行的应用程序时在命令行上指定这些属性,或者在 Health Center 系统属性文件中指定这些属性。要了解更多信息,请参阅配置 Health Center 代理。
- 可选: 如果要使用 SSL 连接(仅限 JMX 连接),请完成以下步骤:
- 在正在运行 Health Center 代理的机器上,为代理创建密钥库和密钥对。 您可以在 IBM SDK and Runtime Environment Java Technology Edition 中使用 keytool 实用程序来创建密钥库和密钥对。
例如,以下命令将创建这些对象:
- 名为 HCAgentKeystore 的密钥库,在当前目录中
- 通过 RSA 算法生成的密钥对。密钥长度为 2048 位,有效期为 200 天。密钥对的别名为 HCAgentKey。
keytool -keystore HCAgentKeystore -genkeypair -keyalg RSA -keysize 2048 -validity 200 -alias HCAgentKey
注: 将提示您提供密钥库密码、您的名称和位置以及密钥(证书)密码。如果您没有为证书密码提供值,那么会将证书密码设置为用于密钥库的密码。
有关 keytool 实用程序和可用命令选项的更多信息,请参阅您的 IBM SDK and Runtime Environment Java Technology Edition 版本的
文档中的 keytool 用户指南。
- 从密钥对中导出公用密钥证书。 例如,以下命令会将 HCAgentKeystore 密钥对的公用证书导出到 HCAgentKey.pub 文件:
keytool -keystore HCAgentKeystore -exportcert -alias HCAgentKey -rfc -file HCAgentKey.pub
-rfc 参数指定以可打印编码格式生成该文件。
- 在正在运行 Health Center 客户机的机器上,遵循相同的步骤为客户机创建密钥库和密钥对,然后导出公用密钥证书。 例如:
keytool -keystore HCClientKeystore -genkeypair -keyalg RSA -keysize 2048 -validity 200 -alias HCClientKey
keytool -keystore HCClientKeystore -exportcert -alias HCClientKey -rfc -file HCClientKey.pub
- 将代理公用密钥证书导入客户机密钥库,然后将客户机公用密钥证书导入代理密钥库,以此来交换公用密钥证书。
例如,在正在运行代理的机器上:
keytool -keystore HCAgentKeystore -importcert -file HCClientKey.pub
在正在运行客户机的机器上:
keytool -keystore HCClientKeystore -importcert -file HCAgentKey.pub
- 对于 Health Center 代理,使用以下 Health Center 属性指定代理密钥库的位置和密码,以便代理可以找到所需的密钥。
密钥库位置:
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStore
密钥库密码:
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStorePassword
密钥库证书密码:
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStoreCertificatePassword
在启动应用程序或将 Health Center 代理连接到正在运行的应用程序(仅限 Java 应用程序)时在命令行上指定这些属性,或者在 Health Center 系统属性文件中指定这些属性。要了解更多信息,请参阅
配置 Health Center 代理。
对于 Health Center 客户机,在连接到代理时指定客户机密钥库的位置和密码,请参阅接下来执行什么操作。
- 如果要使用简单认证(仅限 MQTT 连接),请完成以下步骤:
- 设置 MQTT 代理程序的用户名和密码。 请参阅 MQTT 代理程序文档,以了解有关如何设置这些凭证的信息。
- 在 Health Center 代理属性文件中设置 com.ibm.diagnostics.healthcenter.mqtt.broker.user 和 com.ibm.diagnostics.healthcenter.mqtt.broker.pass 属性,以便与代理程序用户名和密码相匹配。 有关配置属性的更多信息,请参阅Health Center 配置属性。
注: 这些凭证以纯文本形式存储在 Health Center 属性文件中。
结果
您已创建保护 Health Center 连接所需的文件。
下一步做什么
- 如果您担心发生拒绝服务攻击,请在 Health Center 代理属性文件中将 com.ibm.diagnostics.healthcenter.readonly 属性设置为 on,以便代理能够忽略客户机对于可能会中断受监控应用程序的操作的请求。要了解更多信息,请参阅Health Center 配置属性
- 指定您在步骤 1 中选择的安全选项及必需的凭证,以启动 Health Center 客户机并将其连接到代理。例如,如果已选择使用 SSL,那么必须指定客户机密钥库的位置和密码以及密钥库证书密码。要了解更多信息,请参阅使用 Health Center 客户机连接到应用程序。