首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接收到的证书链包含一个V3 CA证书,该证书的密钥使用约束表明其密钥不能用于签署证书。

接收到的证书链包含一个V3 CA证书,该证书的密钥使用约束表明其密钥不能用于签署证书。
EN

Stack Overflow用户
提问于 2013-07-24 17:16:13
回答 1查看 2K关注 0票数 2

我们在一个生产前环境中使用的服务的所有者最近更改了他们的证书设置(没有通知我们)。

由于此证书更改了调用我们的服务(它位于weblogic框上)的任何尝试,结果是:

代码语言:javascript
复制
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Header/>
   <env:Body>
      <env:Fault xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">
         <faultcode>ns0:Server</faultcode>
         <faultstring xml:lang="en">javax.xml.ws.WebServiceException: javax.net.ssl.SSLKeyException: [Security:090569]The certificate chain received from xxxxxxx - xx.xxx.xx.xxx contained a V3 CA certificate which key usage constraints indicate its key cannot be used to sign certificates.</faultstring>
      </env:Fault>
   </env:Body>
</env:Envelope>

我以前从未遇到过这个错误(就google而言,没有其他人),但我的推理是,链中的一个证书是CA,并且它没有密钥签名的约束(很明显)。但是,我看不到证书链的问题,在浏览器中访问URL时没有任何标记。

下面是这条链子的样子:

代码语言:javascript
复制
DigiCert
->DigiCert High Assurance CA-3
-->*.co.uk

DigiCert
Version - V3
Key Usage - Digital Signature, Certificate Signing, Off-line CRL Signing, CRL Signing (86)
Basic Constraints - Subject Type=CA, Path Length Constraint=None

DigiCert High Assurance CA-3
Version - V3
Key Usage - Digital Signature, Certificate Signing, Off-line CRL Signing, CRL Signing (86)
Basic Constraints - Subject Type=CA, Path Length Constraint=0

*.co.uk 
Version - V3
Key Usage - Digital Signature, Key Encipherment (a0)
Basic Constraints - Subject Type=End Entity, Path Length Constraint=None

所有的证书都在我们的信托商店里。我也尝试过将weblogic设置为演示信任,但奇怪的是,这没有任何效果。

有什么想法吗?

更新

启用调试之后,使用

代码语言:javascript
复制
-Dssl.debug=true 
-Dweblogic.StdoutDebugEnabled=true 
-Dweblogic.security.SSL.verbose=true

我得到了:

代码语言:javascript
复制
<Jul 25, 2013 7:22:42 PM IST> <Debug> <SecuritySSL> <BEA-000000> <Validating certificate 0 in the chain: Serial number: 4797710814556239092785509911582462711
Issuer:C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance CA-3
Subject:C=GB, L=Belfast, O=xxxxx xxxxx xxxxx xxxxx, CN=*.co.uk
Not Valid Before:Mon Jan 14 00:00:00 GMT 2013
Not Valid After:Tue Jan 21 12:00:00 GMT 2014
Signature Algorithm:SHA1withRSA
>
<Jul 25, 2013 7:22:42 PM IST> <Debug> <SecuritySSL> <BEA-000000> <Certificate chain is invalid because the issuer DN does not match the next certificate subject: C=GB, L=Belfast, O=xxxxx xxxxx xxxxx xxxxx, CN=*.co.uk>
<Jul 25, 2013 7:22:42 PM IST> <Debug> <SecuritySSL> <BEA-000000> <Signature verification failed>
<Jul 25, 2013 7:22:42 PM IST> <Debug> <SecuritySSL> <BEA-000000> <Validating certificate 1 in the chain: Serial number: 7868785665241589417982590706715607915
Issuer:C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance CA-3
Subject:C=GB, L=Belfast, O=xxxxx xxxxx xxxxx xxxxx, CN=*.co.uk
Not Valid Before:Mon Jan 14 00:00:00 GMT 2013
Not Valid After:Tue Jan 21 12:00:00 GMT 2014
Signature Algorithm:SHA1withRSA

在我看来,这看起来像是weblogic不正确地读取证书链,它似乎认为在链底部的证书是自己签名的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-20 12:22:20

问题原来是证书本身,就像错误说的那样!我的错误是认为问题出在我们的系统上。

该证书在浏览器中显示为正确,但weblogic的身份验证库似乎更严格。

此后,服务所有者签发了一个正确签名的证书。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17840725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档