GlusterFS SSL不起作用

我一直在尝试几个小时才能在pipe理和I / Opath上获得GlusterFS SSL workong无济于事,所以我希望你能帮助我。

我试过了简单的方法:

openssl genrsa -out glusterfs.key 4096 openssl req -new -x509 -key glusterfs.key -subj "/CN=Anyone" -out glusterfs.pem 

然后我把glusterfs.pem从所有对等体连接到glusterfs.ca并将glusterfs.ca分配给所有节点。 以下文件存在:

 /etc/ssl/glusterfs.key /etc/ssl/glusterfs.pem /etc/ssl/glusterfs.ca 

我已经创build了该文件来在pipe理path上启用SSL并重新启动glusterd。

 touch /var/lib/glusterd/secure-access systemctl restart glusterd 

我的glusterd.log现在正在logging数百条(每分钟几十条)显示SSL错误:

 [2017-08-29 22:01:07.535725] E [socket.c:202:ssl_dump_error_stack] 0-socket.management: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number [2017-08-29 22:01:07.535760] E [socket.c:2519:socket_poller] 0-socket.management: server setup failed 

当我尝试在I / Opath上启用SSL时,在卷日志中发生同样的错误,当我尝试更复杂的方式创build我的glusterfs。*文件时也会发生同样的错误。 例:

 openssl genrsa 4096 > glusterfs.ca.key openssl req -sha1 -new -x509 -nodes -days 3650 -key glusterfs.ca.key > glusterfs.ca openssl req -sha1 -newkey rsa:4096 -days 1825 -nodes -keyout glusterfs.key > glusterfs-req.pem openssl rsa -in glusterfs.key -out glusterfs.key openssl x509 -sha1 -req -in glusterfs-req.pem -days 1825 -CA glusterfs.ca -CAkey glusterfs.ca.key -set_serial 01 > glusterfs.pem openssl verify -CAfile glusterfs.ca glusterfs.pem 

但是这导致与上面所示的相同的错误,不pipe是什么CN等我设置,无论我是否在同行上设置相同或不同的CN。

我也尝试创build密钥长度为2048的RSA密钥无济于事。

我正在用尽想法,我不知道这个错误在GlusterFS的背景下意味着什么:

 SSL3_GET_RECORD:wrong version number 

免责声明:我正在运行CentOS 7 64位和GlusterFS 3.11.3(本文最新版本)。

我已经用这种方法解决了这个问题(仅适用于I / OpathSSL支持)… GlusterFS教程中显示的密码列表( https://gluster.readthedocs.io/en/latest/Administrator%20Guide/SSL/ )没有工作,事实certificate,我现在已经设置了以下内容:

 gluster volume set mailrep-volume ssl.cipher-list 'HIGH:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1:TLSv1.2:!3DES:!RC4:!aNULL:!ADH' 

此外,我没有从服务器上拼接.pem文件,而是创build了自己的自签名CA,如上面更复杂的示例所示。 以这种方式创build的.ca文件必须在所有同位体上相同,并且在用于签署glusterfs.pem文件时,不需要任何concat证书。

这是我完整的卷configuration:

 Volume Name: mailrep-volume Type: Replicate Volume ID: 907250fb-d83e-4fe7-a63b-636d952095ff Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: eris:/mnt/glusterfs/vmail Brick2: orcus:/mnt/glusterfs/vmail Options Reconfigured: ssl.cipher-list: HIGH:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1:TLSv1.2:!3DES:!RC4:!aNULL:!ADH nfs.disable: on transport.address-family: inet client.ssl: on server.ssl: on auth.ssl-allow: eris,orcus 

(1)看…(2)

 (1) cat /var/log/glusterfs/glustershd.log | grep SSL (2) 0-mailrep-volume-client-1: SSL support on the I/O path is ENABLED (2) 1-mailrep-volume-client-1: SSL support on the I/O path is ENABLED 

上面的错误(SSL3_GET_RECORD:错误的版本号)现在仅在I / Opath上使用SSL时才被修复。 当我在pipe理path上启用SSL时,问题仍然存在,但我不知道如何更改密码列表以应用相同的修复程序。

有一点注意:GlusterFS SSL教程似乎是可怕的过时。 还声明/etc/ssl/glusterfs.*是硬编码的文件位置,但至less对于I / Opath上的SSL,您可以通过以下方式轻松应用自定义位置(已testing和正常工作):

 gluster volume set mailrep-volume ssl.private-key /path/to/your/certkey gluster volume set mailrep-volume ssl.own-cert /path/to/your/certfile gluster volume set mailrep-volume ssl.ca-list /path/to/your/cafile 

我在https://github.com/gluster/glusterfs/blob/master/tests/features/ssl-ciphers.tfind了这些选项

PS:我今天也升级到了GlusterFS 3.12.0(修复之后!)