我目前在Tomcat 7 (Windows)上运行一个Java,它连接到一个Server数据库。我现在需要加密这个连接,并且我在keystore中有一个公钥SSL证书。但显然,我必须为" truststore“配置一个系统属性,并将信任库设置为keystore。
密钥存储库的位置是C:\SSLKeys\appkeystore.key,根据我所发现的,我必须用以下内容设置Truststore;
Djavax.net.ssl.trustStore=C:\SSLKeys\appkeystore.key
Djavax.net.ssl.trustStorePassword=appkeystorePassword但是我该如何设置这些呢?我已经在命令行中尝试过了,但这似乎不起作用。我不想在Java中硬编码这些代码,因为我需要它们是可配置的。
这些可以在Tomcat中的Catalina.bat文件中设置吗?如果是这样的话,我应该在文件中放置命令吗?
发布于 2014-02-19 16:13:07
我想我可能找到了方法,或者至少找到了一种方法。如果有更好的方法处理这件事,请告诉我。在Tomcat\bin文件夹中,我创建了一个catalina.bat文件,并在其中声明了两个setenv.bat选项属性;
set JAVA_OPTS="-Djavax.net.ssl.trustStore=C:\path\to\keystore.key" "-Djavax.net.ssl.trustStorePassword=************"显然,在启动Tomcat时,它启动catalina.bat文件,catalina.bat文件确定是否存在setenv.bat文件,如果存在,则运行该文件来设置setenv.bat选项。
再一次,有人请纠正我,如果我错了,并建议任何更好的方式这样做。虽然很明显,Tomcat被设置为Windows服务,但上面的选项通过tomcatXw.exe输入,以启动Tomcat控制台,并选择Java选项卡。
发布于 2015-06-30 15:27:42
如果其他人有这个问题,下面是我所做的:
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=$CATALINA_HOME/certificates/truststore.ks -Djavax.net.ssl.trustStorePassword=truststorePassword -server"这将从本质上告诉tomcat使用指定的信任存储库,而不是默认的仙人掌信任库,如果没有在系统属性中指定任何信任存储,tomcat将加载该信任库。
此外,我注意到可以在tomcat的主配置文件server.xml中定义信任库。您要做的就是在连接器属性中设置这些属性。
<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"/>试一试,希望它能帮上忙!
发布于 2017-07-27 04:15:31
推荐的答案仅适用于部署在Windows中的Tomcat,我发现以下内容在Linux服务器中适用于我:
TOMDOGEDIRECTORY/bin/setenv.sh您需要自己创建这个文件
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/opt/meh_tuststove.jks"
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStorePassword=muchsecure"
export JAVA_OPTShttps://stackoverflow.com/questions/21833732
复制相似问题