JMX监视SSL设置指南
主题
如果您的JMX监视应用程序需要SSL,本指南将描述如何设置证书。
支持版本
Artifactory 6。X和7。X(7。使用X路径)
决议
在Artifactory服务器上,设置以下环境变量:
天= 3650
密码= changeit
CACERTS="/etc/ssl/certs/java/ CACERTS " #用于创建新的密钥库
首先,为应用程序(本例中为Apache Tomcat)创建密钥存储库和信任存储库。
使用除美元变量作为新的密钥存储库和信任存储库的基础。因此,所有公共ca和新证书都被使用。确保将变量设置为一个现有的cacerts文件,上面的路径就是一个例子。
使用以下命令生成新的密钥存储库:
keytool -genkey -alias tomcat -keyalg RSA -validity ${DAYS} -keystore tomcat。keystore -storepass ${PASSWORD} -keypass ${PASSWORD} -dname "${DNAME}"
使用新的Tomcat密钥库更新信任库
cp ${CACERTS} tomcat.truststore
Keytool -storepasswd -keystore tomcat。truststore -storepass change -new ${PASSWORD}
keytool -genkey -alias tomcat -keyalg RSA -validity ${DAYS} -keystore tomcat。truststore -storepass ${PASSWORD} -keypass ${PASSWORD} -dname "${DNAME}"
在JMX客户机上,例如jconsole,执行相同的步骤来创建一个新的密钥存储库:
天= 3650
密码= changeit
除= " / etc / ssl /证书/ java / CACERTS”
cp ${CACERTS} jconsole.truststore
Keytool -storepasswd -keystore jconsole。truststore -storepass change -new ${PASSWORD}
keytool -genkey -alias jconsole -keyalg RSA -validity ${DAYS} -keystore jconsole。truststore -storepass ${PASSWORD} -keypass ${PASSWORD} -dname "${DNAME}"
然后,从密钥库中导出公共证书:
Keytool -export -alias jconsole -keystore jconsole。Keystore -文件jconsole。${密码}
最后,将证书导入彼此的信任存储库。这允许应用程序(Tomcat)信任客户端(JConsole),反之亦然:
Keytool -import -alias tomcat -file tomcat。Cer -keystore jconsole。truststore -storepass ${PASSWORD} -noprompt
Rm -f *.cer
在Artifactory实例中,将JMX Remote属性添加到Artifactory .system.properties文件中:
com.sun.management.jmxremote = true
com.sun.management.jmxremote.port = 9010
com.sun.management.jmxremote.authenticate = true
com.sun.management.jmxremote.password.file = / etc / opt / jmxremote.password
com.sun.management.jmxremote.access.file = / etc / opt / jmxremote.access
com.sun.management.jmxremote.ssl = false
javax.net.ssl.keyStore = / etc / opt / tomcat.keystore
javax.net.ssl.keyStorePassword = changeit
javax.net.ssl.trustStore = / etc / opt / tomcat.truststore
javax.net.ssl.trustStorePassword = changeit
com.sun.management.jmxremote.ssl.need.client.auth = true
#重启应用程序
$ systemctl restart artifactory
在Zabbix Java Gateway上(具体步骤取决于JMX监控应用程序):
ZABBIX_OPTIONS = " $ ZABBIX_OPTIONS -Dsun.rmi.transport.tcp。responseTimeout=$tcp_timeout -Djavax.net.ssl.keyStore=/etc/opt/jconsole.keystore -Djavax.net.ssl.keyStorePassword=changeit -Djavax.net.ssl.trustStore=/etc/opt/jconsole.truststore -Djavax.net.ssl.trustStorePassword=changeit"
$ systemctl restart zabbix-java-gateway #在UI中验证是否工作
