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

Konfigurer Truststore i Tomcat

Jeg tror, ​​jeg kan have fundet hvordan, eller i det mindste én måde at gøre dette på. Nogen, fortæl mig, om der er en bedre måde at behandle dette på. I mappen Tomcat\bin, hvor catalina.bat-filen er, oprettede jeg en setenv.bat-fil, og deri erklærede jeg de to Java-egenskaber for;

set JAVA_OPTS="-Djavax.net.ssl.trustStore=C:\path\to\keystore.key" "-Djavax.net.ssl.trustStorePassword=************"

Når Tomcat startes, starter den tilsyneladende catalina.bat-filen, og catalina.bat-filen bestemmer, om der findes en setenv.bat-fil, og i så fald kører den denne fil for at indstille Java-indstillingerne.

Endnu en gang, korriger mig venligst hvis jeg tager fejl og rådgiv mig om en bedre måde at gøre dette på. Selvom Tomcat tilsyneladende er sat op som en Windows-tjeneste, indlæses ovenstående muligheder gennem tomcatXw.exe for at starte Tomcat-konsollen, og fanen Java er valgt.


Hvis nogen andre har dette spørgsmål, er det her, hvad jeg gjorde:
1. Naviger til \tomcatDirectory\bin\
2. Rediger catalina.sh/bat afhængigt af din maskine.
3. Føj disse egenskaber til egenskaben JAVA_OPTS

JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=$CATALINA_HOME/certificates/truststore.ks -Djavax.net.ssl.trustStorePassword=truststorePassword -server"

Dette vil i det væsentlige fortælle tomcat at bruge det angivne truststore i stedet for standard cacerts truststore, som tomcat indlæser, hvis den ikke finder nogen truststore angivet i systemegenskaberne.

Jeg har også bemærket, at det er muligt at definere truststore i tomcats hovedkonfigurationsfil server.xml . Alt du skal gøre er at indstille disse egenskaber i forbindelsen ejendom.

<Connector port="8443" maxThreads="500"
           server="Apache"
           scheme="https" secure="true" SSLEnabled="true" acceptCount="500"
           keystoreFile="/apps/content/certificates/keystore.ks" keystorePass="keystorepass"
           truststoreFile="/apps/content/certificates/truststore.ks" truststorePass="truststorePassword"/>

Prøv det, håber det hjælper!


Det anbefalede svar virker kun for Tomcat installeret i Windows, jeg fandt ud af, at nedenstående fungerer for mig i Linux server:

TOMDOGEDIRECTORY/bin/setenv.sh [Du skal selv oprette denne fil ]

JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/opt/meh_tuststove.jks" 
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStorePassword=muchsecure" 
export JAVA_OPTS

Java tag