gpt4 book ai didi

ssl - ServletRequest.getAttribute ("javax.servlet.request.X509Certificate") 返回 null

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:35 24 4
gpt4 key购买 nike

我遇到了一个让我发疯的停船问题。我希望你们中的一位专家可以提供帮助。

我正在运行最新版本的 TomEE+ (1.6.0.2) 和最新版本的 Java 8 (build 1.8.0_05-b13)。无论我尝试什么,我的 HttpServlet 中的以下代码行总是返回 null。

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

我最初假设我指定的属性名称不正确,因此为了诊断问题,我决定使用以下方法查看完整的属性列表:

Enumeration<String> enums = request.getAttributeNames();

然而,这只向我展示了两个属性:一个用于密码套件,另一个用于 key 强度。

我阅读了其他文章并验证了我的连接器是正确的并且它的 clientAuth 属性设置正确。这是连接器:

<Connector port="4449" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLSv1.2"
SSLCertificateFile="/etc/unipagos/certs/pay.crt"
SSLCertificateKeyFile="/etc/unipagos/certs/pay.key"
SSLVerifyClient="required"
SSLHonorCipherOrder="true"
ciphers="TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"/>

连接似乎有效,但是使用 openssl s_client-msg 表明服务器没有要求客户端证书。

为什么服务器不要求客户端证书?我做错了什么?

最佳答案

我有一个用于 tomee 的工作连接器配置,服务器正在请求客户端证书。你可以试试

<Connector port="7443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
SSLProtocol="TLSv1.2"
SSLVerifyClient="require"
SSLCertificateFile="/opt/_cdrom_apache/certs/ec-dev-apr.pem"
SSLCertificateKeyFile="/opt/_cdrom_apache/certs/ec-dev.key"
SSLCACertificateFile="/opt/_cdrom_apache/certs/CA.pem"
/>

关于ssl - ServletRequest.getAttribute ("javax.servlet.request.X509Certificate") 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24513566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com