我已经阅读了stackoverflow中的相关问题。然而,答案只告诉如何配置身份验证检查。我需要在spring boot中用rsocket加密所有传输的数据。如何在带有SSL/tls的spring boot中使用tls。在如下所示初始化rsocket客户端时,我找不到任何受支持的方法,尽管我知道rsocket-it本身可以支持SSL/TLS。我发现了一些例子:
this.rsocketRequester = rsocketRequesterBuilder.setupRoute("sidecar-client")
.setupData("test_data")
.rsocketConnector(connector -> connector.acceptor(responder))
.connectTcp("localhost", 7000)
.block();
Summary of my question:
1. Does rsocket in springboot support SSL/TLS ?
2. If spring boot support rsocket with SSL/TLS, are there any examples can be referenced
是的-您需要像通常一样配置SSL/TLS,而不管是否使用rsocket。
在application.yml中添加以下行:
server:
port: 8443
ssl:
enabled: true
client-auth: none
protocol: "TLS"
key-store: "classpath:certs/local/server.jks"
key-store-type: "JKS"
key-store-password: "changeit"
trust-store: "classpath:certs/trust.jks"
trust-store-password: "changeit"
spring:
rsocket:
server:
mapping-path: "/"
transport: websocket
在客户端使用wss而不是ws
const _rSocketClient = function()
{
return new RSocketClient({
setup: {
// ms btw sending keepalive to server
keepAlive: 60000,
// ms timeout if no keepalive response
lifetime: 180000,
// format of `data`
dataMimeType: 'application/json',
// format of `metadata`
metadataMimeType: MESSAGE_RSOCKET_COMPOSITE_METADATA.string,
},
transport: new RSocketWebSocketClient(
{
// Connect as secure websocket
url : "wss://" + R_SOCKET_HOST + ":" + R_SOCKET_PORT,
debug: true
},
BufferEncoders
),
});
}
我也找不到任何示例,只能自己动手学习。您会发现的大多数RSocket示例都使用RSocketFactory,它现在已被弃用,API不断变化——因此请始终获取最新信息并亲自尝试。
是的,修改你的例子
安全TCP(SSL)
this.rsocketRequester = rsocketRequesterBuilder.setupRoute("sidecar-client")
.setupData("test_data")
.rsocketConnector(connector -> connector.acceptor(responder))
.connect(TcpClientTransport.create(TcpClient.create().secure().host("localhost").port(7000)))
.block();
或安全WebSocket
this.rsocketRequester = rsocketRequesterBuilder.setupRoute("sidecar-client")
.setupData("test_data")
.rsocketConnector(connector -> connector.acceptor(responder))
.connectWebSocket(URI.create("https://rsocket-demo.herokuapp.com/rsocket"))
.block();
如果我正确理解SSL/TLS在仅服务器身份验证中的含义,那么在握手之后,服务器会向客户端发送它的公钥和一个由CA签名的数字签名证书。如果客户端拥有这个CA的公钥,它就可以解密证书并与服务器建立信任。如果它不信任CA,则通信停止。在双向SSL中,客户端需要向服务器进行身份验证,在客户端接收到公钥和数字签名的证书之后,客户端将向服务器发送它的公钥和数字签名的证书。服务器将检查它是否有客户机证书的公钥,
问题内容: 我正在开发一个需要HTTPS的Spring Java应用程序,并且按照Spring的指南配置SSL。 我的application.properties文件包含以下内容: 运行该应用程序时,控制台将输出Tomcat started on port(s): 8443 (https),但是对服务器的任何请求都将导致一个0 NO RESPONSE状态。 我想念什么? 问题答案: 问题似乎是指定
我在我的MySQL服务器上设置了SSL。 我为CA(CA.pem,ca-key.pem)、客户端(client-cert.pem,client-key.pem)和服务器(server-cert.pem和server-key.pem)生成了几个证书。 在Spring Boot配置文件中,下面是到application.yml文件中定义的MySQL的链接:jdbc:MySQL:/host:3306/b
我正在尝试对我的spring boot应用程序运行selenium测试。我想用我的应用程序的属性启动应用程序。yml和应用测试。yml定义。然而,默认情况下,这不会发生。 我试着按照Dave Syer的建议去做,并实现了一个Application ationContext初始器,它使用YamlProperty tySourceLoader读取application.yml和application-
问题内容: 我使用RSA建立SSL我的春节,引导服务器(如何配置SSL /HTTPS的春天?通过以下)的指导: 使用创建了一个新的密钥库和密钥 将这些行放在我的application.properties文件中: 奇迹般有效。但是,当我通过运行生成AES 256密钥并将.properties文件更改为新的密钥存储区/密钥值时,对服务器的每个请求均导致。我应该遵循什么步骤来成功配置它? 问题答案:
我试图连接到Cassandra从我的Spring Boot应用程序使用Spring Boot数据cassandra。我有两个疑问。 1)是否建议使用CassandraAutoConfiguration,即在application.properties中提供带有前缀(spring.data.cassandra.*)的所有Cassandra配置,以便我的应用程序为我创建一个集群,或者我需要手动创建集群