在jetty上的truststore中放置一个新套接字后重新启动sslsocketconnector

时间:2012-10-04 22:24:42

标签: java ssl jetty jmx

我有一个码头网络服务器。我正在尝试将证书注册到信任库。

证书已正确注册,但当客户端尝试使用已注册的证书进行身份验证时,在信任存储区中找不到证书。

但是,证书位于信任库中,但尚未被码头加载。

在tomcat中出现同样的问题,但是当我使用jmx重新启动COnnectorMBean时,它会在tomcat中开始工作。

现在在jetty中,当我使用JMX重新启动sslsocketconnector时,它会重新启动但连接中断,所以我无法重新加载证书,然后在从信任库加载证书后将消息发送回客户端。

我正在尝试使用以下代码重新启动sslsocketconnector

 try{
           MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
            Set names = mBeanServer.queryNames(new ObjectName("*:*"), null);

             Iterator it=names.iterator();
             while( it.hasNext()) {
                ObjectName oname= (ObjectName)it.next();

                MBeanInfo minfo = mBeanServer.getMBeanInfo(oname);



                if (minfo.getClassName().equals("org.mortbay.jetty.security.SslSocketConnector")) {
                    System.out.println("found ssl socket connector... will try to restart it");

                         System.out.println("Restarting SSL Connector on port ");
                         Object params[] = {};
                         String signature[] = {};
                         ;
                         /**
                          * Stop and restart the connector to get it to re-read the certificate trustfile
                          */
                         mBeanServer.invoke(oname, "stop", params, signature);
                         mBeanServer.invoke(oname, "start", params, signature);

                      }
                   }
                }
        catch (Exception e) {
             System.out.println("Did not restart SSL Connector: " + e);
             e.printStackTrace();
             throw e;
          }

有人能告诉我在不重新启动服务器并破坏现有套接字的情况下在信任库中重新加载证书的好方法吗?

由于

0 个答案:

没有答案