如何通过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 < String,String >  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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值