- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已按照本指南使用 SSL 层设置我的 Tomcat 8 实例,生成客户端和服务器 keystore 以及自动签名的公共(public)客户端证书。
我想问题是我真的不知道如何配置 Tomcat 的连接器...
这是我当前的 server.xml 文件(删除了不必要的注释):
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<GlobalNamingResources>
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector connectionTimeout="40000" port="9090" protocol="HTTP/1.1" redirectPort="8443"/>
<!-- I've also tried using these ones: -->
<!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" /> -->
<!--<Connector clientAuth="true" port="8443" minSpareThreads="5"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="C:\Program Files\Apache Software Foundation\Tomcat 8.0\keys/server.jks" keystoreType="JKS" keystorePass="triple1327"
truststoreFile="C:\Program Files\Apache Software Foundation\Tomcat 8.0\keys/server.jks" truststoreType="JKS" truststorePass="triple1327"
sslProtocol="TLS" />-->
<!-- Don't work on tomcat8:
maxSpareThreads="75"
SSLVerifyClient="require"
SSLEngine="on"
SSLVerifyDepth="2"
-->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="C:\Program Files\Apache Software Foundation\Tomcat 8.0\keys\server.jks" keystoreType="JKS" keystorePass="triple1327"
truststoreFile="C:\Program Files\Apache Software Foundation\Tomcat 8.0\keys\server.jks" truststoreType="JKS" truststorePass="triple1327"
/>
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine defaultHost="localhost" name="Catalina">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
<Context path="/rutas" docBase="C:\Users\IN006\cavwebapp" reloadable="true" crossContext="false">
</Context>
</Host>
</Engine>
</Service>
</Server>
使用它,我尝试访问 tomcat 欢迎页面:
但是他们都没有工作......
有什么建议吗?
谢谢!
编辑
解决方法:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/etc/tomcat7/server.jks"
keystorePass="changeit" />
我已经能够通过 https://localhost:8443 访问它了
最佳答案
您的问题缺少重要的细节,例如 tomcat 的日志和您的 keystore 的结构。例如,放置在 keystore 中的 key 本身可以受密码保护。您要使用的端口可能已经被占用,等等。有很多事情都可能出错。
一般而言,我建议您尽可能保持简单。试试这个片段:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/etc/tomcat7/server.jks"
keystorePass="changeit" />
关于java - Tomcat 8 中的 SSL : server & client JKS + client public cer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256558/
介绍 现在,为不同的内部微服务之间的通信设置 SSL 很常见。 为了设置它,需要各种步骤。 我的具体示例是我试图为 Kafka 集群设置安全通信,以便代理通过 SSL 进行通信,并且客户端在与 kaf
我想使用 jks 文件的密码将 dev.jks 文件添加到 vault。因此,当我的应用程序尝试使用保险库中的 jks 时,可以使用相同的密码来检索证书 最佳答案 所以您想在 Vault 中存储文件以
我需要使用双向身份验证进行身份验证。我有两个 JavaKeyStore 文件 keystore.jks 和 truststore.jks,我在使用 java 客户端进行身份验证时使用它们,现在我想使用
我有 Java 网络服务,并使用 Java Keytool 创建的 jks 文件实现了 X.509。 keytool -genkey -keyalg RSA -sigalg SHA1withRSA -
我的应用已在 Google 开发者控制台中签名。现在 Google 删除了我的 .keystore 文件并向我发送了 .jks 文件来签署我的应用程序,Unity3d 不接受。 有什么方法可以将该 .
我正在尝试在 GCP Dataproc 上运行结构化流程序,该程序从 Kafka 访问数据并打印它。 访问 Kafka 使用 SSL,并且信任库和 keystore 文件存储在存储桶中。 我正在使用
我是Java世界的新手,虽然使用NetBeans代码创建Web应用程序工作正常,直到执行get方法,但当我试图执行SQL查询时,glassfish无法显示来自MSQL DB的数据并给出错误。我正在使用
我关心的是,我可以通过将另一台计算机中存在的 jks 文件复制到我的计算机中并在standalone.xml 中提供该 keystore 的路径和密码来将其使用到我的计算机(具体来说是 Docker
我需要从三个不同的证书创建 Java key 存储 (JSK) 文件。我尝试了 keytool java 命令但无法执行此操作。然后我尝试将每个证书一一导入。所有证书均已成功导入,并且 keytool
我管理的网站 www.abc.com 已经有一个 SSL 证书,该证书将在 2 周后到期。因此,我从现有的 .JKS 文件创建了一个 .CSR,并将其发送给了 CA。我找回了一个 .PEM 并将 pe
我有一个名为:cert.cer 的证书链,内容为: subject= ... OU=MyCA issuer= ... OU=MyCA -----BEGIN CERTIFICATE----- ... -
我创建了一个带有公共(public)和私有(private) RSA key 的 JKS 文件。当我使用外部路径(如 c:/file.jks)加载此文件时,程序会像魅力一样执行。但是,如果我尝试从类路
我希望这是一个简单的问题,但我没有找到答案。 我想让 build.gradle 文件通过替换某些变量来设置我的 Spring Boot 应用程序中的版本。这与广告一样有效: def tokens =
我正在将一个使用 openssl 的旧应用程序转换为 Java。我想知道使用 Java 的 KeyStore 作为证书颁发机构是否有任何缺点。例如,使用 Java keystore 是否会造成性能损失
我正在运行一个使用Apache Tomcat的应用程序,我正在寻找一种自动化的方法来从头开始重新创建Java Key Store(JKS)。该应用程序正在使用类似的配置 server.xml ...
我正在使用 Aladdin etoken,并且能够从中读取证书。现在我必须使用证书创建一个 .jks。如何从智能卡导出证书并创建 .jks 文件?谢谢。 最佳答案 请尝试以下代码。在这里,我为 JKS
我有一个使用密码生成的 JKS 文件。我有一个使用 keystore 连接到 url 的 java 代码。现在,当我加载 keystore 时,我错误地将 密码 作为 null 传递。但令我惊讶的是,
我使用这个命令生成了一个 JKS: keytool -genkey -alias $1 -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -dname "
我想以编程方式使用来自 etoken 的证书和私钥创建一个 .jks 文件。我可以使用密码访问 etoken,但无法读取证书或私钥。在之前的一个问题中,我问过是否可以从我被告知这是不可能的 etoke
我正在尝试加载包含从现有 Web 服务器获取的中间 CA 证书的 JKS keystore 。 Verisign 证书如下所示。 -----BEGIN CERTIFICATE----- MIIF5DC
我是一名优秀的程序员,十分优秀!