gpt4 book ai didi

ssl - 子域的 https 证书问题

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

我的应用程序在负载均衡器后面的 EC2 上运行。已获得 www.example.com 和 *.example.com 的 https 证书。

应用程序在 http 上运行,但 https 已在负载均衡器中设置。

我在基于公司的应用程序中添加了子域支持。

喜欢,https://XYZ.example.com XYZ公司。

如果我访问使用,https://XYZ.example.com , 它工作正常。

如果我访问使用,https://www.XYZ.example.com , 浏览器警告如,

“www.arun.contactcentral.io 的所有者对其网站的配置不当。为保护您的信息不被盗用,Firefox 未连接到该网站。”

但是,如果我访问 https://www.example.com , 它工作正常。

虽然我已经获得了 *.example.com 的认证,但即使我访问 www.XYZ.example.com 它也不起作用。

我有一个过滤器来处理从 http 到 https 的方向,但它仍然没有从 url 中过滤 WWW。

public class HttpsFilter implements Filter {

private static final String HTTP = "http";

private static final String HTTPS = "https";

private static final String X_FORWARDED_PROTO = "X-Forwarded-Proto";

@Override
public void doFilter(final ServletRequest req, final ServletResponse res, final FilterChain chain) throws IOException, ServletException {


HttpServletRequest request = (HttpServletRequest)req;

HttpServletResponse httpResponse = (HttpServletResponse) res;

String xfp = request.getHeader(X_FORWARDED_PROTO);

if (HTTPS.equals(xfp)) {
//httpResponse.setHeader("Strict-Transport-Security", "max-age=60");

chain.doFilter(req, res);
return;
}
else if (HTTP.equals(xfp)) {

String serverUrl = HTTPS+"://"+req.getServerName()+((HttpServletRequest)req).getServletPath();

httpResponse.sendRedirect(serverUrl);
return;
}

}

}

谢谢,巴斯卡

最佳答案

通配符 SSL 证书将仅匹配一级子域(除非在极少数情况下且不受支持的情况下)。通配符星号将不匹配。 (点)。

因此,*.example.com 的证书将匹配

  • www.example.com
  • xyz.example.com
  • some-really-long-name.example.com

但它不会匹配

  • example.com
  • www.xyz.example.com
  • abc.def.ghi.example.com

如果要匹配 www.xyz.example.com 和 xyz.example.com,则需要两个不同的证书。

https://en.wikipedia.org/wiki/Wildcard_certificate#Limitation

关于ssl - 子域的 https 证书问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38004339/

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