Java >> Java tutorial >  >> Tag >> Tomcat

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

Java tag