如何通过SSL连接到Java上的Redis

发布时间:2019-11-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了如何通过SSL连接到Java上的Redis脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

redis是一个开的内存数据结构存储,是构建NoSQL数据库最受欢迎的选择之一。但是,使用Redis的一个主要障碍是它没有任何自己的加密功能。

当然,任何企业级数据库都必须能够保证其中存储的信息的安全性。如果不受信任方可以访问您的数据库,则需要开发自己的加密功能,在加密协议中包含数据。

SSL(安全套接字层)是在不同服务器或计算机之间传输数据的首选协议。能够使用SSL / TLS安全地连接到服务器是任何数据库开发人员的基本技能。

虽然Redis的SSL支持可能会在未来的更新中出现,但该功能目前还没有出现在桌面上。根据Redis的开发人员的说法:“多次提出向Redis添加SSL支持的想法。但是,目前,我们认为,鉴于需要SSL支持的用户比例很小,而且每个方案往往有所不同,因此使用不同的“隧道”策略可能会更好。“

这意味着开发人员需要找出自己的方式来使用SSL来使用Redis。但是,对于开发人员来说,导航SSL / TLS协议的细节可能具有挑战性,特别是那些没有安全经验的开发人员。您可能必须遵循一系列冗长,令人沮丧的指示并尝试调试神秘错误,浪费宝贵的开发时间。

幸运的是,有一个更好的解决方案,特别是那些已经使用Java编程的人。Redisson是Java编程语言的Redis客户端。它包括Java中用于分布式计算范例的几十个最重要的类和接口的实现,以便您可以继续在Redis中使用此功能。

感谢Redisson,使用Redis设计,开发和部署大型分布式系统要容易得多。图片标题

让我们看一下使用Redisson通过SSL连接到Redis是多么容易。以下是使用Redisson与SSL和Java的示例:

导入 java。util。并发。ConcurrentMap ;
进口 组织。redisson。Redisson ;
进口 组织。redisson。api。RMap ;
进口 组织。redisson。api。RedissonClient ;
进口 组织。redisson。配置。配置 ;
公共 类 MaPExample {

public  static  void  main(String [] args){     Config  config  =  new  Config();     // rediss  - 定义为Redis连接使用SSL     配置。useSingleServer()。setAddress(“rediss://127.0.0.1:6379”);     RedissonClient  redisson  =  Redisson。create(config);     RMap < StringString >  map  =  redisson。getMap(“test”);     地图。put(“mykey”,“myvalue”);     字符串 值 =   地图。得到(“mykey”);     // ...     redisson。shutdown(); }

}

正如您所看到的,Redisson使得通过SSL连接到Redis on Java上变得简单明了。我们使用“rediss”临时协议通过SSL / TLS指定与Redis的连接。然后,我们实例化一个RedissonClient对象,该对象表示具有同步/异步接口的Redisson对象。

一旦创建,RedissonClient对象就可以立即开始处理数据。在上面的示例中,我们可以看到RMap对象的使用,它是Java中ConcurrentMap接口的分布式实现。RedissonClient对象能够使用SSL在Redis中安全地存储RMap的数据,从而无需冗长,耗时的配置。

配置Redis以接受与Stunnel的SSL连接
Stunnel是一个开源代理应用程序,用于使用SSL / TSL加密包装客户端 - 服务器连接。由于Redis不包含对SSL加密的本机支持,因此许多开发人员使用stunnel进行安全的客户端 - 服务器通信。

好消息是Redisson已经在客户端支持SSL,这意味着您无需在客户端上安装stunnel。

但是,您仍需要在Redis服务器上安装stunnel才能在两端进行加密。为此,请在运行Ubuntu的系统上按照以下步骤操作。

首先,使用apt-get工具通过运行命令来安装stunnel:

sudo apt-get update
sudo apt-get install stunnel4

要在启动时启用stunnel,必须编辑/ etc / default / stunnel4文件:

sudo nano / etc / default / stunnel4

修改ENABLED参数以使其读取,然后保存并关闭该文件。

通过以下命令在/ etc / stunnel目录中创建SSL证书:

须藤 OpenSSL的 -nodes -days 3650 REQ -x509 -newkey RSA:2048 -keyout /etc/stunnel/redis.key 退房手续 /etc/stunnel/redis.crt

获得证书和密钥后,您可以为位于/etc/stunnel/redis.conf的Redis创建一个stunnel配置文件。在内部,您需要为Redis服务器定义PID文件和配置的位置:

pid = /run/stunnel-redis.pid
[redis的服务器]
accept = REDIS_SERVER_EXTERNAL_IP:6379
connect = 127.0.0.1:6379
cert = /etc/stunnel/redis.crt
key = /etc/stunnel/redis.key

关于Redisson
当你使用Redisson时,让Redis使用Java和SSL只需要几行代码。

启用S​​SL连接只是Redisson使Java开发人员更容易使用Redis的一种方式。从数据结构和集合到锁和同步器,Redisson配备了各种分布式对象,使开发人员能够在Redis之上使用Java。

脚本宝典总结

以上是脚本宝典为你收集整理的如何通过SSL连接到Java上的Redis全部内容,希望文章能够帮你解决如何通过SSL连接到Java上的Redis所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。