gpt4 book ai didi

ssl - Spring-Boot 客户端认证配置。

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

首先,我是 Spring-Boot 和 SSL 的新手,但我花了几天时间进行研究,基本上是在尝试获得一个配置了客户端身份验证的简单 Spring-Boot 应用程序。

我已经像这样设置了一个连接器:

private Connector createSslConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
try {
File keystore = getKeyStoreFile();
File truststore = keystore;
connector.setScheme("https");
connector.setSecure(true);
connector.setPort(sslPort);
protocol.setSSLEnabled(true);
protocol.setKeystoreFile(keystore.getAbsolutePath());
protocol.setKeystorePass("changeit");
protocol.setTruststoreFile(truststore.getAbsolutePath());
protocol.setTruststorePass("changeit");
protocol.setKeyAlias("apitester");
protocol.setClientAuth("need");
return connector;
}
catch (IOException ex) {
throw new IllegalStateException("cant access keystore: [" + "keystore"
+ "] or truststore: [" + "keystore" + "]", ex);
}
}

还有一个看起来像这样的 Controller :

@RequestMapping("/test/{identifier}")
@ResponseBody
ResponseEntity<String> test(HttpServletRequest request, @PathVariable String identifier) {
return new ResponseEntity<String>("hello: " + identifier, HttpStatus.OK)
}

但是,一旦我启动我的应用程序,我就可以使用浏览器导航到 localhost:sslport/hello/test/xxxx 并获得响应,而无需加载任何类型的客户端证书。我期待被提示输入客户端证书。

最佳答案

Spring boot 默认使用 tomcat(嵌入式)web 容器。

因为它被叫出tomcat doc ,我们必须将其设置为 true 以在接受连接之前从客户端强制传播有效证书链。设置want 将允许客户端提供证书,但不是绝对必需的。

我怀疑“需要”是否对容器有任何意义。

 protocol.setClientAuth("need");

关于ssl - Spring-Boot 客户端认证配置。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29634848/

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