Tomcat Config-JAVA_OPTS和连接器中的密钥库/信任库之间的区别

发布时间:2020-07-06 08:15

JAVA_OPTS和连接器中的密钥库/信任库之间有什么区别? 例如:

JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=<trustStorePath> \
     -Djavax.net.ssl.trustStorePassword=<trustStorePassword> \
     -Djavax.net.ssl.keyStorePassword=<keystorePassword> \
     -Djavax.net.ssl.keyStore=<keystorePath> \
     -Djavax.net.ssl.keyStoreType=JKS \
     -Djavax.net.ssl.trustStoreType=JKS"

<Connector port="443" maxHttpHeaderSize="8192" maxThreads="100"
       minSpareThreads="25" maxSpareThreads="75"
       enableLookups="false" disableUploadTimeout="true"
       acceptCount="100" scheme="https" secure="true"
       SSLEnabled="true" clientAuth="false"
       sslProtocol="TLS" keyAlias="server"
       keystoreFile="/home/user_name/your_site_name.jks"
       keystorePass="your_keystore_password" />

我想使用第二种方法。我可以摆脱最初的JAVA_OPTS设置吗?如果有第二种方法(带有参数的连接器),使用第一种方法是否有优势?

回答1

第一个为整个JVM设置默认的SSLContext,第二个仅为https SSL连接器配置SSLContext,即为通过https连接到您的应用程序的客户端。

如果仅将SSL用于https服务器,则JAVA_OPTS设置似乎是多余的。如果要添加受信任的服务器证书或客户端密钥以通过安全的http,ldap,ftp等与另一台服务器建立SSL连接,它仍然很有用。