当前位置: 首页 > 知识库问答 >
问题:

“javax . servlet . request . x509 certificate”请求属性不返回CA证书

慕云
2023-03-14

我有一个需求,其中有多个web服务的单个web应用程序需要配置SSL。但是只有一个web服务应该有双向SSL,其余的必须是单向SSL。

为此,我使用了:

 <Connector SSLEnabled="true" acceptCount="100" clientAuth="want"
 disableUploadTimeout="true" enableLookups="false" maxThreads="25"
 port="8443" keystoreFile="somefolder\some-KeyStore.store" keystorePass="changeit"
 protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
 secure="true" sslProtocol="SSL" 
 truststoreFile="somefolder\some-trustStore.jks"
 truststoreType="JKS" truststorePass="Changeit"/>

在代码中,我使用下面的代码作为服务URL的过滤器:

X509Certificate[] certificates = (X509Certificate[]) request
                    .getAttribute("javax.servlet.request.X509Certificate");         

这将检查需要相互SSL的服务是否获得了有效的证书。因此,当该URL被调用时,servlet过滤器会检查证书。

但问题是,这只适用于自签名证书;当我使用CA签名的证书时,上面的scriptlet返回null。(即,无证书)

证书算法是RSA和DSA类型;这或key Stores和Trust Stores的类型是否有任何意义。

如果我缺少任何内容,或者我需要对 CA 签名证书使用任何其他代码,请告诉我。我真的需要在请求中提供 CA 证书。

共有1个答案

隗瑞
2023-03-14

感谢您的输入,

但我想通了。我最初没有在TrustStore中导入证书链,只是在那里有CA证书。一旦我正确配置了CA证书、密钥库和trustStore,它就解决了这个问题。

它最初适用于自签名证书,因为自签名证书没有证书链。

 类似资料:
  • 有人能帮我吗? 谢谢

  • 我已经使用zappa在aws lambda上部署了一个flask应用程序,现在该应用程序在所有endpoint上都运行良好,除了我的主endpoint,当我对其发出post请求时,它返回{“消息”:“endpoint请求超时”} 真的需要一个修复或想法如何克服这个我需要调用分析路线,部署的url是 https://2ixfyfcsik.execute-api.eu-west-2.amazonaws

  • 我必须做一个帖子,但我得到错误405 在本网站->http://177.66.89.34:8079/transparencia/#我需要迭代页面顶部的2个下拉菜单的选项。 首先,我会在“escolha o exercício”旁边加上选项:然后,我会在“escolha a entidade”旁边加上选项: 用下面的代码,我在“EscolhaoExercício:”上面写了一篇文章 我希望在pars

  • 我正在尝试对远程服务器进行api调用,最初,我遇到以下错误:

  • 问题内容: 我已经在debian’s中安装了一个自签名的root ca cert并使用安装了它们。在这一点上很高兴,也很高兴,但是python2和python3请求模块坚持认为对证书不满意。 python2: python3 为什么python会忽略系统ca-certificates捆绑包,以及如何集成它? 问题答案: 从http://codingdict.com/questions/664 为了

  • 我已经将一个自签名的根ca证书安装到debian的中,并使用安装它们。此时,true|gnutls-climysite.local感到高兴,true|openssls_client连接mysite.local:443感到高兴,但是python2和python3请求模块坚持认为它对证书不满意。 蟒蛇2: 蟒蛇3