Langsom opstart på Tomcat 7.0.57 på grund af SecureRandom
Jeg stod over for det samme problem med, at tomcat var for langsom til at starte. Jeg fulgte denne artikel om DigitalOcean og installerede haveged i stedet for at bruge urandom.
haveged er en løsning, der ikke går på kompromis med sikkerheden.
haveged tillader generering af tilfældighed baseret på variationer incode-udførelsestid på en processor. Da det er næsten umuligt for et stykke kode at tage den samme nøjagtige tid at udføre, selv i det samme miljø på den samme hardware, bør timingen for at køre et enkelt eller flere programmer være egnet til at seede en tilfældig kilde. Den hareged implementering seeds dit systems tilfældige kilde (normalt/dev/random) ved hjælp af forskelle i din processors tidsstempeltæller (TSC) efter at have udført en loop gentagne gange
Sådan installeres haveged
Følg trinene i denne artikel. https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged
Jeg har lagt det op her
De sikre tilfældige opkald kan blokere, da der ikke er nok entropi til at føre dem i /dev/random.
Hvis du har linjen
securerandom.source=file:/dev/random
i /jre/lib/security/java.security kan ændring af dette til urandom forbedre tingene (selvom dette sandsynligvis allerede er standard).
Alternativt er der nogle forslag til, hvordan man fodrer poolen her
https://security.stackexchange.com/questions/89/feeding-dev-random-entropy-pool
Her er nogle specifikke instruktioner til at justere bare tomcat i henhold til Henrys svar
opret /etc/tomcat/fastersecurerandom.properties
securerandom.source=file:/dev/urandom
rediger JAVA_OPTS
inde i /etc/tomcat/tomcat.conf
JAVA_OPTS="-Djava.security.properties=/etc/tomcat/fastersecurerandom.properties"
FYI Jeg fandt ud af, at jeg ikke kunne indstille flere JAVA_OPTS
med JAVA_OPTS="$JAVA_OPTS ..."
på trods af de kommenterede eksempler. Stakkels gamle forvirrede tomcat 7 ville ikke starte i henhold til en advarsel i /var/log/messages
På forskellige versioner/smag kan du finde variationer af, hvor det er bedst at indstille miljøvariablerne for tomcat. Den bedste måde at fejlfinde på, hvis de får affekt, er at kontrollere kommandoen, der kører sådan her:
$ ps aux | grep java
tomcat 4821 4.7 13.9 2626888 263396 ? Ssl 22:31 0:23 /usr/lib/jvm/jre/bin/java -DJENKINS_HOME=/opt/jenkins/ -Xmx512m -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true -Djava.security.properties=/etc/tomcat/fastersecurerandom.properties -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start