Puede reiniciar el conector Tomcat individual, es decir, es posible reiniciar el puerto como 8443 después de cambiar su archivo jssecacert.
Aquí está el código / método completo que estoy usando para reiniciar los conectores tomcat después de agregar / eliminar certificados.
// Stop and restart the SSL connection so that the tomcat server will
// re-read the certificates from the truststore file.
public void refreshTrustStore() throws Exception
{
try
{
//following line should be replaced based on where you get your port number. You may pass in as argument to this method
String httpsPort = configurationManager.getHttpsPort();
String objectString = "*:type=Connector,port=" + httpsPort + ",*";
final ObjectName objectNameQuery = new ObjectName(objectString);
for (final MBeanServer server: MBeanServerFactory.findMBeanServer(null))
{
if (!server.queryNames(objectNameQuery, null).isEmpty())
{
MBeanServer mbeanServer = server;
ObjectName objectName = (ObjectName) server.queryNames(objectNameQuery, null).toArray()[0];
mbeanServer.invoke(objectName, "stop", null, null);
// Polling sleep to reduce delay to safe minimum.
// Use currentTimeMillis() over nanoTime() to avoid issues
// with migrating threads across sleep() calls.
long start = System.currentTimeMillis();
// Maximum of 6 seconds, 3x time required on an idle system.
long max_duration = 6000L;
long duration = 0L;
do
{
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
Thread.currentThread().interrupt();
}
duration = (System.currentTimeMillis() - start);
} while (duration < max_duration &&
server.queryNames(objectNameQuery, null).size() > 0);
// Use below to get more accurate metrics.
String message = "TrustStoreManager TrustStore Stop: took " + duration + "milliseconds";
logger.information(message);
mbeanServer.invoke(objectName, "start", null, null);
break;
}
}
}
catch (Exception exception)
{
// Log and throw exception
throw exception
}
}
bindOnInit="false"
opción.Ahora hay una manera de hacerlo comenzando con tomcat v8.5.24.
Introdujeron 2 métodos llamados:
Se pueden llamar de varias maneras:
Los detalles de la vía 1 y la vía 2 están fácilmente disponibles en tomcat docs.
Detalles sobre cómo usar el modo 3:
Encuentre el código de muestra a continuación:
Clase de protocolo principal:
El conector en server.xml debería mencionar esto como el protocolo:
Espero que esto ayude.
fuente