- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要一些帮助来修复项目中的证书异常。我收到 java.security.cert.CertificateException: Certificate data canot be processed 以下是客户端应用程序的环境详细信息:
第 3 方 Web 服务提供商最近已升级到 SHA-256。通过上述客户端设置,我收到握手异常。我们尝试使用 Bouncy CaSTLe jar 来支持 SHA-256。在此之后,我在进行 Web 服务调用时看到以下异常:
WebContainer : 0, SEND TLSv1 ALERT: fatal, description = certificate_unknown
WebContainer : 0, WRITE: TLSv1 Alert, length = 2
WebContainer : 0, called closeSocket()
WebContainer : 0, handling exception: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificate data canot be processed
Exception javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificate data canot be processed
Finalizer, called close()
Finalizer, called closeInternal(true)
我拥有的 keystore 和信任库来自默认的 JDK 版本:
keyStore is: /usr/local/opt/was/was60/java/jre/lib/security/cacerts
keyStore type is : jks
init keystore
trustStore is: /usr/local/opt/was/was60/java/jre/lib/security/cacerts
trustStore type is : jks
这里还有一些日志:
SystemErrR AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificate data canot be processed
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificate data canot be processed
at com.ibm.jsse2.bx.a(bx.java:114)
at com.ibm.jsse2.by.a(by.java:24)
at com.ibm.jsse2.by.a(by.java:444)
at com.ibm.jsse2.w.a(w.java:281)
at com.ibm.jsse2.w.a(w.java:105)
at com.ibm.jsse2.v.a(v.java:25)
at com.ibm.jsse2.by.a(by.java:272)
at com.ibm.jsse2.by.m(by.java:198)
at com.ibm.jsse2.by.startHandshake(by.java:68)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.cingular.csi.CSI.Namespaces.v94.wsdl.CingularWirelessCSI_wsdl.InquireWirelineServiceAppointmentReservationsSoapHttpBindingStub.inquireWireline
最后,还有几点需要注意:
WAS 和 JDK 都无法升级,应用稳定。
使用的 SocketFactory 是:com.ibm.jsse2.SSLSocketFactoryImpl
尝试了 javax.net.SSLSocketFactoryImpl。它在 SocketContext 本身失败。
尝试使用 key 工具将第三方服务器证书添加到我的信任库 (cacerts)。也没用。
还尝试分别使用 DummyClientKeyFile.jks 和 DummyClientTrustFile.jks 作为 Keystore 和 truststore 文件,而不是 JDK 的 cacerts,但没有成功。
两周多以来我一直被这个问题困扰着。感谢任何帮助。
最佳答案
IBM 的 1.4.2 JVM 不支持使用 SHA256 密码签名的证书。当我们遇到这个问题时,我提出了一个 PMR 来确认这一点,回复是:
"You will need to revert to using older style ciphers or upgrade. We began supporting SHA 256 from Java 1.5 onward. It's not possible to back port the function."
如果您发现提到 Java 1.4.2 支持此类证书,请检查这与哪个供应商的 JVM 有关 - 可能是 Oracle,因为他们的 1.4.2 JVM 确实支持 SHA256 签名证书。
更新
解决此问题的选项是:
关于java.security.cert.CertificateException : Certificate data canot be processed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31085565/
你发现标题的不同了吗? (对我来说,花了一些时间) 所以我按顺序使用了连接到 java.security.cert.X509Certificate 的充气城堡创建证书。现在我正在寻找一种从原始字节创建
我有一整天都在努力解决的问题,但就是无法重建。我遇到了引发 CertificateNotYetValidException 异常的问题: java.security.cert.CertificateN
我有一个服务器和一个客户端。我让他们都在同一台机器上运行。我正在尝试在客户端和服务器之间建立 SSL 连接。我已经使用以下 keytool 命令为服务器和客户端生成了证书。 对于客户keytool -
在本地,我一直在使用一个 Nginx 容器进行开发,该容器在一个目录中包含所有 ssl 配置和 ssl 证书。 但是,既然我即将转向生产,我很好奇将证书放在 nginx 容器中是否是一种好的做法? 或
我想根据 CRL 验证客户端提供的 X509 证书是否已被吊销。我已经成功地实例化了一个 java.security.cert.X509CRL,但是我在检索 session 证书时遇到了问题: try
我在使用 X509TrustManager 检查服务器是否可信时收到异常错误。我按照开发人员的说明进行操作:https://developer.android.com/training/article
我正在尝试使用 Java 代码从安全(即 SSL)网页中读取内容。我正在尝试同时使用 URLConnection (java.net) 和 Apache 的 HTTPClient。在这两种情况下,当我
如果我仅使用证书(带链)和私钥发出 openssl 调用,我会遇到服务器拒绝握手中的客户端证书的问题。 如果我还设置了 cafile 参数并将其指向与证书相同的文件,这个问题就会消失。 即使信息已经在
我正在使用由 CA 文件签名的证书来保护 kubernetes API。为此,我将我的 CA 文件 sa.crt 添加到 /etc/pki/ca-trust/source/anchors/ 并使用命令
我使用facepy与python进行GAE 我遇到了一个错误,当我跟踪该错误时,我发现 from . import certs 在utils.py文件中 点(.)是什么意思? certs.py 与 u
本文整理了Java中org.bouncycastle.cert.X509CRLHolder类的一些代码示例,展示了X509CRLHolder类的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中org.bouncycastle.cert.X509v2CRLBuilder类的一些代码示例,展示了X509v2CRLBuilder类的具体用法。这些代码示例主要来源于Github
本文整理了Java中org.bouncycastle.cert.X509ExtensionUtils类的一些代码示例,展示了X509ExtensionUtils类的具体用法。这些代码示例主要来源于Gi
本文整理了Java中org.bouncycastle.cert.X509AttributeCertificateHolder类的一些代码示例,展示了X509AttributeCertificateHo
我按照此说明在我的 EKS 集群上设置了一个证书管理器 https://cert-manager.io/docs/tutorials/acme/ingress/ . 这是我的入口 apiVersion
遵循https://cert-manager.io/docs/installation/kubernetes/中提到的步骤 # Kubernetes 1.16+ $ kubectl apply --v
我按照此说明在我的 EKS 集群上设置了一个证书管理器 https://cert-manager.io/docs/tutorials/acme/ingress/ . 这是我的入口 apiVersion
过去 2 天我遇到了此错误。这似乎是 python requests 库的问题,但我已经重新安装了好几次了,但没有成功。 Traceback (most recent call last):
我有一台运行 Debian 8.1、Apache 2.4.10 和 OpenSSL 1.0.1k 的服务器。我有一个域 example.com,其中包含几个子域,例如 www.example.com、
我正在使用 cUrl 从公司网站请求数据,使用他们发送给我的 .cer 证书。这是命令: cUrl --header "Content-Type: text/xml;charset=UTF-8" \
我是一名优秀的程序员,十分优秀!