Tomcat 配置 - JAVA_OPTS 和连接器中的 keystore/truststore 之间的区别

Tomcat Config - difference between keystore/truststore in JAVA_OPTS and in the Connector

JAVA_OPTS 和连接器中的 keystore/truststore 有什么区别? 例如:

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 设置吗?如果有第二种方法(带参数的连接器),使用第一种方法有什么好处吗?

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

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