- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试配置 Tomcat,以便我的 Web 应用程序可以使用 LDAPS。在 UAT 服务器上一切正常,但由于某种原因,生产服务器无法初始化信任库。我已经打开调试(通过 -Djavax.net.debug=all
),错误是:
default context init failed: java.io.IOException: Keystore was tampered with, or password was incorrect
我 100% 确定密码是正确的,因为我已经运行了 keytool 并列出了信任库的内容,并从工作中的 UAT 服务器获取了相同的文件。
作为实验,我将 Tomcat 配置为对 keystore 和信任库使用相同的存储文件(我意识到这不是典型的设置,但根据我的理解,文件格式等是相同的,因此它们应该都加载):
-Djavax.net.ssl.trustStorePassword=xxx
-Djavax.net.ssl.trustStore=C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin\.keystore
-Djavax.net.ssl.keyStorePassword=xxx
-Djavax.net.ssl.keyStore=C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin\.keystore
keystore 有效:
keyStore is : C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin.keystore
keyStore type is : jks
keyStore provider is :
init keystore
init keymanager of type SunX509 ***
found key for : tomcat
虽然信任库失败.. 相同的文件和密码!:
trustStore is: C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin.keystore
trustStore type is : jks
trustStore provider is :
init truststore
default context init failed: java.io.IOException: Keystore was tampered with, or password was incorrect
从 Web 应用程序中,堆栈跟踪有更多详细信息(我不确定它是否有帮助。我研究了 TrustManagerFactoryImpl 的 Java 源代码并将其与日志记录相匹配,但它没有解释行为)
javax.naming.CommunicationException: <ldap url>:636 [Root exception is java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)]
at com.sun.jndi.ldap.Connection.<init>(Unknown Source)
at com.sun.jndi.ldap.LdapClient.<init>(Unknown Source)
at com.sun.jndi.ldap.LdapClient.getInstance(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.connect(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.<init>(Unknown Source)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(Unknown Source)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(Unknown Source)
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(Unknown Source)
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(Unknown Source)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at javax.naming.directory.InitialDirContext.<init>(Unknown Source)
at com.mycompany.fde.util.LDAPHelper.initialBindSSL(LDAPHelper.java:116)
at com.mycompany.fde.util.LDAPHelper.<init>(LDAPHelper.java:91)
at com.mycompany.fde.util.LDAPHelper.getInstance(LDAPHelper.java:58)
at com.mycompany.fde.server.work.StartupWork.startupStage1(StartupWork.java:224)
at com.mycompany.fde.server.work.StartupWork.call(StartupWork.java:121)
at com.mycompany.fde.server.work.StartupWork.call(StartupWork.java:47)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
at javax.net.ssl.DefaultSSLSocketFactory.throwException(Unknown Source)
at javax.net.ssl.DefaultSSLSocketFactory.createSocket(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.jndi.ldap.Connection.createSocket(Unknown Source)
... 24 more
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
at java.security.Provider$Service.newInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getDefault(Unknown Source)
at javax.net.ssl.SSLSocketFactory.getDefault(Unknown Source)
... 29 more
Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at sun.security.ssl.TrustManagerFactoryImpl.getCacertsKeyStore(Unknown Source)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultTrustManager(Unknown Source)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
... 35 more
Caused by: java.security.UnrecoverableKeyException: Password verification failed
... 45 more
我完全不知所措 - 任何帮助/想法将不胜感激!
最佳答案
感谢大家的帮助,我终于发现不知为何,确实有人在Catalina.properties
中设置了truststore密码(通过javax.net.ssl.trustStorePassword
)。看起来这甚至比 Tomcat UI 中设置的 java 变量更优先:(
关于java - TrustStore 初始化失败但 KeyStore 成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47840637/
我正在尝试使用 imap 从 java 中的电子邮件服务器中提取消息,但我遇到了这个异常: DEBUG: JavaMail version 1.4.2 DEBUG: successfully load
有没有办法通过命令行或自定义信任管理器来创建由 cacerts 支持的自定义 trustStore? 应用程序使用自定义 trustStore: -Djavax.net.ssl.trustStore=
我们从客户端获得了 .p7b 格式的服务器证书链,我们需要使用 Java/Scala API 导出到我们的客户端信任库 他们的证书文件包含三个证书:root、intermediate、actual s
这个问题在这里已经有了答案: SSLHandshakeException: no cipher suites in common (3 个答案) 关闭 5 年前。 A server和相应的clien
你们中有人知道如何更改Security.framework/TrustStore.sqlite3的内容吗?看起来 iPhone 使用它来存储受信任的 CA 证书。我真的希望我的 iPod touch
我在虚拟机参数中使用了这个: -Djavax.net.ssl.trustStore=/opt/certs/trust.p12 -Djavax.net.ssl.trustStorePassword=We
如果存储在 Java 信任库中的证书过期,我会/可能会收到什么异常?我会肯定地收到访问认证资源的异常吗?什么情况下不会出现异常? 最佳答案 如果信任库中的证书过期,并且没有被具有相同主题和 key 的
我正在运行在 JVM 参数中配置的 Java 进程(微服务)和 trustStore。如果微服务需要连接需要在 trustStore 中导入证书的外部 URL。 Example: example.co
前提:我有一个证书,我想验证系统是否“信任”这个证书(由受信任的根 CA 通过 Java/操作系统签名) 我找到了一些不同的解决方案来实现这一点。 选项 1: 使用 SSL 类获得信任。 TrustM
我已经设置了一个自签名证书来测试 ssl java 连接 - 但是,它拒绝定位 java trustStore。除了将类编译到的文件夹(我使用 netbeans)和/java/jre6/bin 之外,
假设对于 SSL/TLS,我有 2 个 rootCA 的 CA1 和 CA2(均为自签名),每个 CA 均已签署并颁发了 5 个最终实体证书。我需要将每个 rootCA 及其相应的 5 个子公共(pu
下面是使用开发 keystore 调用第一个 Web 服务的示例代码并使用阶段 keystore 调用第二个 Web 服务。 public static void main(String args[]
我正在尝试配置 Tomcat,以便我的 Web 应用程序可以使用 LDAPS。在 UAT 服务器上一切正常,但由于某种原因,生产服务器无法初始化信任库。我已经打开调试(通过 -Djavax.net.d
我有一个客户替换了我们产品组件的 keystore 和信任库。更换后组件无法相互通信(2 路 SSL)。 在 SSL 日志上,我看到: http-nio-8100-exec-2, fatal erro
我有一个自定义 CAroot.crt(由我生成),我所有的客户证书都用这个 CAroot.crt 签名。我有一个 TrustStore.jks,我只放了客户端证书而不放 CAroot.crt,因为我希
我已经使用 keytool 添加了一个证书。现在我必须找到关联的信任库文件。我在哪里可以找到它? 最佳答案 没有“关联的信任库文件”这样的东西。您已将证书添加到的文件是信任库。 关于java - 我在
美好的一天, 我在Webphere中有一个java Web应用程序,这个Web应用程序需要调用IBM第三方来获取一些信息。 IBM 给我一个包含客户端证书的 .p12 文件,我通过 WAS Conso
我已经使用以下命令创建了一个自签名证书: keytool -genkeypair -keyalg RSA -alias test-api -keystore test-api.p12 -storepa
您好,我正在使用带有 cPanel 的服务器,我想在我的 TrustedStore 上安装 Cielo 的 SSL,Cielo 给了我们 3 个存档 .crt,但我不知道该怎么做。 如果有人帮助,我将
我有一个 Web 应用程序,它使用 3rd 方 jar 提供银行卡支付。通过 SSL 进行通信。 我还实现了在付款后发送确认电子邮件 (JavaMail) 的功能,代码如下: // property
我是一名优秀的程序员,十分优秀!