【问题标题】:Spring Boot - Reading x509 client certificate from HTTP requestSpring Boot - 从 HTTP 请求中读取 x509 客户端证书
【发布时间】:2017-01-21 02:45:32
【问题描述】:

如何从客户端接收 x509 证书?我正在使用带有嵌入式 tomcat 的 Java 的 Spring-Boot-Framework。对于原型,我使用 Java SE 进行了配置:

HttpsExchange httpsExchange = (HttpsExchange) httpReq;

name = httpsExchange.getSSLSession().getPeerPrincipal().getName();

一位用户在此处(下方)向我提供了执行此操作的参考

@RequestMapping(value = "/grab")
public void grabCert(HttpServletRequest servletRequest) {
    Certificate[] certs = 
            (Certificate[]) servletRequest.getAttribute("javax.servlet.request.X509Certificate");
}

但我无法获得一些证书!也许是因为我使用的是 tomcat,它正在处理所有 SSL 连接。所以没有证书正在接收我的申请。我必须做什么才能获得客户证书?客户端证书用于获取 https 连接。我需要证书主题的一些信息。谢谢。

【问题讨论】:

    标签: java spring certificate x509


    【解决方案1】:

    你必须从HttpServletRequest获取它。

    你可以查看这个问题的答案:How to get the certificate into the X509 filter (Spring Security)?:

    不,你不能那样做。您需要从 HttpServletRequest 中获取它:

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

    这是我试图指向你的帖子,由甘道夫撰写。

    这是原来的question

    【讨论】:

    • 感谢您的评论!故障排除后,我明白了!这是从 HttpServletRequest 获取客户端证书的行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多