一尘不染

如何加快Tomcat SSL初始化

tomcat

我正在开发Tomcat Web应用程序,因此需要能够重新启动Tomcat以加载代码更改。但是,有时Tomcat需要很长时间才能启动,因为主线程停在以下位置:

java.lang.Thread.State: RUNNABLE
    at org.apache.tomcat.jni.SSL.initialize(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.core.AprLifecycleListener.initializeSSL(AprLifecycleListener.java:214)
- locked <119e583> (a java.lang.Class)
at org.apache.catalina.core.AprLifecycleListener.lifecycleEvent(AprLifecycleListener.java:83)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:770)
at org.apache.catalina.startup.Catalina.load(Catalina.java:530)
at org.apache.catalina.startup.Catalina.load(Catalina.java:550)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)

该停顿是由于可用的熵太低(如运行cat / proc / sys / kernel / random / entropy_avail所示)。

当我开发代码时,我不在乎SSL引擎是否用一个好的随机数初始化。

我有什么办法可以将一些假熵转储到/ dev / rnd或强制Tomcat使用一些假熵?

我可以通过运行“ find /”更快地提高熵,但这需要一段时间才能产生足够的熵。


阅读 216

收藏
2020-06-16

共1个答案

一尘不染

将环境变量RANDFILE设置为“ / dev / urandom”可使Tomcat使用此源进行SSL初始化。

2020-06-16