2015-12-22 22 views
9

このチュートリアルhttps://tomcat.apache.org/tomcat-7.0-doc/monitoring.htmlを使用してApache Tomcat 8を設定し、SSL証明書を生成しました。SSLを使用したJava JMXクライアント

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://10.16.70.161:9999/jmxrmi"); 

      HashMap environment = new HashMap(); 
      String[] credentials = new String[] 
      { 
       "user", "passw" 
      }; 
      environment.put(JMXConnector.CREDENTIALS, credentials); 

      JMXConnector jmxc = JMXConnectorFactory.connect(url, environment); 
      MBeanServerConnection server = jmxc.getMBeanServerConnection(); 

      Set<ObjectName> s2 = server.queryNames(new ObjectName("Catalina:type=Server,*"), null); 
      for (ObjectName obj : s2) 
      { 
       ObjectName objname = new ObjectName(obj.getCanonicalName()); 
       System.out.println("serverInfo " + server.getAttribute(objname, "serverInfo")); 
       System.out.println("address " + server.getAttribute(objname, "address")); 
       System.out.println("stateName " + server.getAttribute(objname, "stateName")); 
      } 

このJMXクライアントをSSL証明書とともに使用するには、どのように拡張する必要がありますか?私はインターネット上の良い例を見つけることができません。

答えて

6

あなたはほとんどそこにいる、あなたのコードが正しいか、あなただけのkeytoolコマンドラインユーティリティを使用してtrust storeにSSL証明書を追加した後、次のコマンドラインを使用してJMXクライアントを起動する必要があります。

java -Djavax.net.ssl.trustStore=/your/path/to/truststore.jks \ 
    -Djavax.net.ssl.trustStorePassword=truststore_pwd \ 
    YourJMXClient 
+0

なぜSslRMIServerSocketFactoryとSslRMIClientSocketFactoryを追加しますか?それは必須ですか? –

+0

残念ですが、JMXServerを作成する場合にのみ必要です。この場合は、トラストストアを構成して、起動時にクライアントに渡すだけです。 – Val

+0

完全にカスタムのJMXクライアントを使用せずにJavaコードを使用してtrustStoreの場所とパスワードを設定することはできますか?私はここに新しい投稿をしましたhttp://stackoverflow.com/questions/34474023/replace-system-setproperty –

関連する問題