Skip to content

Commit 4ec3e98

Browse files
committed
Implement SSL hostname verification
1 parent 5c456fd commit 4ec3e98

File tree

10 files changed

+144
-79
lines changed

10 files changed

+144
-79
lines changed

lib/redis_client/config.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ def openssl_context
107107

108108
context = OpenSSL::SSL::SSLContext.new
109109
context.set_params(params)
110+
context.verify_hostname
110111
context
111112
end
112113
end

lib/redis_client/connection.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def initialize(config, connect_timeout:, read_timeout:, write_timeout:)
4040
)
4141
rescue Errno::ETIMEDOUT => error
4242
raise ConnectTimeoutError, error.message
43-
rescue SystemCallError => error
43+
rescue SystemCallError, OpenSSL::SSL::SSLError => error
4444
raise ConnectionError, error.message
4545
end
4646

test/fixtures/certs/ca.crt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIE5jCCAs4CCQCn/PfBBqJ4SjANBgkqhkiG9w0BAQsFADA1MRMwEQYDVQQKDApS
2+
MIIE5jCCAs4CCQDxt6Euaz14TjANBgkqhkiG9w0BAQsFADA1MRMwEQYDVQQKDApS
33
ZWRpcyBUZXN0MR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMjIw
4-
MzExMTEzNzUwWhcNMzIwMzA4MTEzNzUwWjA1MRMwEQYDVQQKDApSZWRpcyBUZXN0
4+
NDEzMTEyMzQ3WhcNMzIwNDEwMTEyMzQ3WjA1MRMwEQYDVQQKDApSZWRpcyBUZXN0
55
MR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEB
66
AQUAA4ICDwAwggIKAoICAQCvyS8Pw+lnSNHphxVDUE6ogvz/HWulyFpeugWtuitl
77
Q8mGho+E0IdkRvP6uS7r31d4XUznYXwbHpQakDuzPbjgXDcRSAtvUOqD79xkn5Ff
@@ -14,16 +14,16 @@ TwSZGW1QKU3YPwdWfFNRYCR1UOCEwAgAa9bpHJrLVoQ1vpx3y2q6xm7lVbUj/yhP
1414
MWzEG9Sih85AliWHjiKOM0+nc6vyUffxflebeg966B32BtsfcRgT9TJ9O1ppnZFk
1515
PnR1ZR4duvRY/0nBmtJ49QYaVRGfLCA6+7KOzB6z5FbFCE+g05XWkjSWWymYORFs
1616
UBGCaCOtd3blaG+U+RkHX+Y3UA9aDtTJ+HxhTyBGg+MagoEsQZc3Zm9ho4lVx0l4
17-
EQIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQCWZymhl8iMuArzKj2dwS/8lkHodd44
18-
tEfnV+2iPXGZmc3SboAWYcBrAQ4lFfi2NhttpJNjyTBHkiOqsdTLWOhcVuKCw1vZ
19-
HFct3+jloq+gmpUBi4i65rYxiiROONkuG3HevC3xExc+FeqZXYVKK2mo2FP/6HrH
20-
e4Q52Jtcqop6JeUo9gmawut+reIn2HFO2ZkX8GNuAnWfLIlYwqf68MHJxMEKzTXO
21-
nbiAaxHvP5oeqAr0u3Lqt88XWr4C70CuqawmsK/Ey5QptXkmLoYtrwRR22VQ3k6H
22-
yTAna6hcCT1MrdHuE9DE3GbL1fzbwGj1IaE4xVk6kH8NlUOtoTy1RzFgLL5nEzZg
23-
QjlD6a+FnRRWBkfmmLinpamaCl2RvosKrNKn0+kvYdUHEYUIt9RIzDHaFbf64ay7
24-
pRIVr0jPc1OZb4aY7p1BSl036pbaPxXowxPlcQLljOI83aGFQq2jaOLzHRNoJDoz
25-
jNRRevxh1sauguBDBTp/QRr1Ek1MO599mjzxQgHmi2OzXh1OpqELq/34/HBp0a56
26-
zKdx5Unge4OBli2WZjBcwFrGCAtj5oGoZrZ15Clc3jP00Bm/7dpL2BjsB6sBiyin
27-
mRePNE3tSJTfAj96/C6Z07cNPSRJL6Pog2711hEOx6yLgYKJSmZrkBRDNqHCzIDK
28-
HkQ9fn4Q3ZRMrg==
17+
EQIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQAEvbyfpRn7eQ5eSFSfVTXHsLIElrhU
18+
xqIoPjdK7p48sl846FfMDugA5bNV68y4WxGXy7Uny+HnJAf5kffl7eG5MIyWgb/f
19+
3jZuLK7oCeRYtjbT9kqelo5GLcP7vhnWI7FxXttrYvzmSgHtfIgaH0wOqeP3mjNI
20+
OJih93Ju/wrCAUIn8k2uwIbcX5xOtjBq1SRN+bzj8x8Dggur9XrELgQDJ4cVdOEQ
21+
9l2wthq3yMeAsbXvvw/loWmqPNsw0qGivC9g9ibHsXKWT6tl2BdcHp7wFEq+lasa
22+
QLTZCNENTLjdcy8xL8N175OvAUTCxC+qPmwP4UnfYh1yEcXFyoQ0YzcKaxxXDzGa
23+
6JAKKU7PIJ2S4tLpc2AnSUoV6RHXDpAaVPLJdJeWIalf3axhyKtFbfrBAJUUdTNK
24+
nmcS+Zdw9bC7FpSDy/Ihxn86WluzB3IfzkfcCPBE/snJveNhqzApheaQQ0FRptSC
25+
k3qkmkIiJWIvkGk5Kd/kwlKT6hQUiZbxUg0po0kV/Gr56MKUcpM7Rk1EWifv8zDr
26+
zB7QwkGkLwNxIO5x26JUWdiRYJG+krlTCMTCU1xizMdh3suxWD8sKkxUJTjiHtsx
27+
v5dx/eRKFOeURUjCeT48V5F6x4C9+qcGop/cDGx5zRWaf7LbzVLx/WMVWCIbUa+Z
28+
RxPkx7LCzXFbCQ==
2929
-----END CERTIFICATE-----

test/fixtures/certs/ca.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
E8E8B1291EDD332F
1+
E8E8B1291EDD3338

test/fixtures/certs/client.crt

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIEBTCCAe2gAwIBAgIJAOjosSke3TMuMA0GCSqGSIb3DQEBCwUAMDUxEzARBgNV
2+
MIIEAzCCAeugAwIBAgIJAOjosSke3TM3MA0GCSqGSIb3DQEBCwUAMDUxEzARBgNV
33
BAoMClJlZGlzIFRlc3QxHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhvcml0eTAe
4-
Fw0yMjAzMTExMTM3NTBaFw0yMzAzMTExMTM3NTBaMCsxEzARBgNVBAoMClJlZGlz
5-
IFRlc3QxFDASBgNVBAMMC0NsaWVudC1vbmx5MIIBIjANBgkqhkiG9w0BAQEFAAOC
6-
AQ8AMIIBCgKCAQEApekIP5Lx+nBQig+q5wDUc2EfSVu1vDEWyQP5pjWrXnmT+yQi
7-
zmXnoTSSM+6Qzni9oPMbtEuJlSyAaTW7sa7BM7cvwsPIT/IVuN2yVR0LNIeB/dy6
8-
8wHiaFk3AVPGZaeWFDQ0lsNfqDTrQzTPOBjquO7J8B8Znety9qhGBgjNAKN2eLQh
9-
AFRnSFU+P0YtVI0yJdHk7JN79VmgElCR5vs3AABQ+Z79zcGYN8eR5KWK0Kx2W2gi
10-
gjhrva7pKGA6oupPvqS89ciqjGEXzcHZKOTbTgYwuDcPnpKbppTg76GtmS7ieBIK
11-
IvV2StYyLydUUgMBNKCT8KXCZbhRFqG6zRBuOwIDAQABoyIwIDALBgNVHQ8EBAMC
12-
BaAwEQYJYIZIAYb4QgEBBAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQA+CoaCNWqq
13-
7Tf7V0E05AWWv8PMpzP/6dSLOz6C3zxWSuNzVoFJmOShxt8OA3Ach4UAnnYTwsWM
14-
RWq3WDlGl04t1P+sjMr7Gz767ZS/TOFyjF9F4+63Jwld3YIrdswr3cFUdCHrjcmA
15-
qGpc+sKfE0ipCtOMrZea7FU7UTg/HMMksiqIivukHQaM3NdJB0wumm+2nqhSWwYV
16-
gvaQLIwlYaBrkDHgnwkH3jwlRza3wV09CBCVzCnE9MQgfO/WBLAjMH4e/4wJwyBv
17-
Q5VQc91WGhmELJEGHb8IfHNspZ7nC0dqz8rNQ6HPf9o7iSl/dleZy78IyBva/c14
18-
lMGiJeN234wP3+kWZBPFXpfteYOU6Cs78fJ0AFENSRILCmW3+yTyZGL4YXmy47Zk
19-
7Ea6v6Bw/KvLNVKhqZKt24r/5V/dsHN4Xgtx/9dh28ajD8FTVg9hkHAT6hNpoowK
20-
e2XX5IfTiRrHRhkF/89KPHSxosHcA8aIE+YKS+FPHTu+XhaeANsvSt9+WKZlWWvx
21-
+/1XQiJ4DvzMD27zQ1tIYUTWqPF90JOgjYdbHSmzzQfpv+OUQxyJjfSU/IDjMt/h
22-
aWzeLGXAtkA+hZyMj1u4xqEOa0W6rz2Qmwv15J7VtI6b7pSG4FgRwaXryEW3aVtW
23-
7Wg3qyUdg105R7S9jENLZno17tQWZE6+mg==
4+
Fw0yMjA0MTMxMTIzNDdaFw0yMzA0MTMxMTIzNDdaMCkxEzARBgNVBAoMClJlZGlz
5+
IFRlc3QxEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
6+
ADCCAQoCggEBAKXpCD+S8fpwUIoPqucA1HNhH0lbtbwxFskD+aY1q155k/skIs5l
7+
56E0kjPukM54vaDzG7RLiZUsgGk1u7GuwTO3L8LDyE/yFbjdslUdCzSHgf3cuvMB
8+
4mhZNwFTxmWnlhQ0NJbDX6g060M0zzgY6rjuyfAfGZ3rcvaoRgYIzQCjdni0IQBU
9+
Z0hVPj9GLVSNMiXR5OyTe/VZoBJQkeb7NwAAUPme/c3BmDfHkeSlitCsdltoIoI4
10+
a72u6ShgOqLqT76kvPXIqoxhF83B2Sjk204GMLg3D56Sm6aU4O+hrZku4ngSCiL1
11+
dkrWMi8nVFIDATSgk/ClwmW4URahus0QbjsCAwEAAaMiMCAwCwYDVR0PBAQDAgWg
12+
MBEGCWCGSAGG+EIBAQQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAHT8DHHWpbPn4
13+
k+dW8rAMARZ8voCygybp79PQDjKGjRgYYnil5zbXPQfoFF9VEMrtSaFEEdT891BZ
14+
un5H1KuA6ASRQjNk0HVWQ0tQ4vDZTw7tSv0SqcKzWd6BzIn16Syk74bc0ldidQEZ
15+
uQj0uBEfmP3zKySAru0Iaif82HslSEN4JQ9i1GqRh1RNjQpRz+/eYWlNcuGAJe1f
16+
gVs7/IDrNEm6hxHQU3ooOjhzwXLpvWMaJrWnooZgW+BTEZKmkZqFNUwatW29bgkt
17+
UD5Pkf2GOLF4TVRIm2pTte/8uJSS1xpfoFGvBOxTS465WRYJNj9xBIHtPzYM8X8C
18+
mc4yx7NVCKF/Ncrb5M2tIgUSNthYjRxCb2/s4JKjpA+yhAGRcy6ljqn1zDgDjm3l
19+
7SXUdEiJltTkEyHgv27iW0+MkBpRD5xRmFlYDRuILRnSGTnztyRmgrN1yDoD48/8
20+
xVLu62Kq/8xe8dzXI6bNFDiwgpJqRalX6V9nYJ0gkYmSmE/R95otBli1XjR62LuS
21+
meTKMBlc1DLiwaDGaVM9ePXFQwdCXvUtNsy8HHQKPri9Poi+B3WdxLW7jK7XLoul
22+
c+hiKRRbgtKWsmE1n8oDXZW9jMFMJ4AXC4jQ6Asce9jwSB6Bi+1lDKV8Vo7CIJzQ
23+
/A3YXDgoOBNRKxqLo4j1MP2EX6wUi1U=
2424
-----END CERTIFICATE-----

test/fixtures/certs/redis.crt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
-----BEGIN CERTIFICATE-----
2-
MIID3TCCAcUCCQDo6LEpHt0zLzANBgkqhkiG9w0BAQsFADA1MRMwEQYDVQQKDApS
2+
MIID2jCCAcICCQDo6LEpHt0zODANBgkqhkiG9w0BAQsFADA1MRMwEQYDVQQKDApS
33
ZWRpcyBUZXN0MR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMjIw
4-
MzExMTEzNzUxWhcNMjMwMzExMTEzNzUxWjAsMRMwEQYDVQQKDApSZWRpcyBUZXN0
5-
MRUwEwYDVQQDDAxHZW5lcmljLWNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
6-
ggEKAoIBAQDDfYEZNPGrbObu+d1zZsJA88qr4QRyexr5MihOQSAOoxZTUfpos2YY
7-
isYJn7kmtd/aI0X4Knmt71K9NynRlwp+rsbnCCcc6CXTBd5+qZ6BN85yDv0g51W0
8-
Yhe+92yD9bLDJ6MGBV0FjalS6EMBJiRPj1ZNbd3F0PG7IhxJqZ+LABDtoZc7U4oU
9-
XUcg5HnrHuR/7RnVIzZn28rkqqIqkh5lmo4jUhBCxt7c8BLGO5selUPJHQviOSx8
10-
cKETf7QdJZ5bM4FbNQs7CuuGjyP1M8CxHU97KMrQG2/5MIKtve9fQEt3M/XYChLN
11-
PxQG53xNXG0bQNcJF3BgxOfeEIk/mzVFAgMBAAEwDQYJKoZIhvcNAQELBQADggIB
12-
ACh0tonLSJeCadSv0OIudZjOffU3jo1dczNJ5cYPEbrTQaA/zsZQQl+aiFqnA7iC
13-
lBynv2rd2zSOQAR0mNz6PqaOGBNP5RZSQ9V4+WmA0ibtdEGhjxbCzsBXY+1Epgca
14-
iUqfW9FhZxx9vNIxhRDTrHhiULHr/VhP6jtNhYI7dL+VA0CUX/RJpSQBu2F/MowF
15-
gmHGtz3Y+iMPldbhWZIMwKzil+EPU2alVrYGJfaBjbHfaluUJXNkQsUGJSLvXQED
16-
ToRzveRR7i/gR4y0v1rCgW0KGbhZ4CJeNfvu5aQFiYSU+iyb9aFLXNMiUd0Oqqxq
17-
BBHYq9UmcEA3BHd0oWx7DwkJNl/SJzSN9PO2tZLGroNtacWZ2/HIz10AJROVOsts
18-
oQNJoxry/eQo5/Z6rDbPmrzJEvCpuFSDFAZcjFxhWoN6M2lyBlmeVdN4fbFQPBOF
19-
j/VGE8UWS6YM91VSikoPdyWB5qu0VrlHWLDjTjNmARO+Y5Vvz9C+46mdplQVq/yz
20-
vP9pImgu31tUlzdfJq0IlLrQ5aKZqwnjwLQ9A2As9CWX/CeAKJiJ+Y65GyT42PI4
21-
Cun4y/Pc6xvajwbdpfWK5u3dHrSV4ju9s8YF7rFECGoVP1H2RurPTTdgQ63lGTt8
22-
O8xayTb7mHNkAvLWk7CX9Gv5jP/RYos3nj/ti6gZkaFe
4+
NDEzMTEyMzQ3WhcNMjMwNDEzMTEyMzQ3WjApMRMwEQYDVQQKDApSZWRpcyBUZXN0
5+
MRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
6+
AoIBAQDDfYEZNPGrbObu+d1zZsJA88qr4QRyexr5MihOQSAOoxZTUfpos2YYisYJ
7+
n7kmtd/aI0X4Knmt71K9NynRlwp+rsbnCCcc6CXTBd5+qZ6BN85yDv0g51W0Yhe+
8+
92yD9bLDJ6MGBV0FjalS6EMBJiRPj1ZNbd3F0PG7IhxJqZ+LABDtoZc7U4oUXUcg
9+
5HnrHuR/7RnVIzZn28rkqqIqkh5lmo4jUhBCxt7c8BLGO5selUPJHQviOSx8cKET
10+
f7QdJZ5bM4FbNQs7CuuGjyP1M8CxHU97KMrQG2/5MIKtve9fQEt3M/XYChLNPxQG
11+
53xNXG0bQNcJF3BgxOfeEIk/mzVFAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAFZL
12+
q3jbuxsSX3CJO1+p3NEAwogX7bGyvVk99QHvVUKFlnTRhrmpxTKvbzd27ahWjR2L
13+
B/2Dk0onZJBaPUD887XJP8biZlzBhR5rtpTsrKlDjTJrXhoMlXCnJ41EgTk8pyn0
14+
j6T5P1RKrrbonXqWmF5T2flfb9wRNggow/6DZrJVMk6PGy8VJrTnbR6ppa4dFbmb
15+
nLt3kimXSxuLLhuDYXNIzJWFvksGfWwYMadnoqILWSeH4X3mwY85WTyx6r975jWW
16+
Mva7r4K8Cnf51OfLk7BynH6nVm+O3yBat8oMWv531+trUv3siWY3oufaqM7OuLZf
17+
joyFKndxgS5HMlzAjEwEl8UXzgVHyCTvjKb3hdQDCp8ynsOGDtadXnLWRld0KJ+N
18+
Z+sbQCxZEOeGAns6H9mhdbgJn+xZwIZdif8fYwL4Z9M2YEyTivLCuuMYbvSgoBwU
19+
6xtRJp6BbIm0OutMxReG+Jamcs7PJaSjASzIzd2wcP6jPCqk0krhkNC19c+k6Gc6
20+
RIZ2ZbO9dHJ+kMOEKa1HYuJc7d4xj0GMe+CH7J0QC50h8b1OejoAqREFSloBUV7Q
21+
WsQ02h46B4cJWLCjHzYKmQ+QZvL0PUfpAP6mxOWH6UTzt0aDO8rQYF0zJrTvOSFL
22+
Llz8Fhn+evSsXRUnBvzy6iEPUbAJww1um/oNbcsW
2323
-----END CERTIFICATE-----

test/fixtures/certs/redis.dh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
-----BEGIN DH PARAMETERS-----
2+
MIIBCAKCAQEA+oW/vZAKdLFzHVqOuGMU8K3wEMbyG7EtC77s1lwpCO+SCXDoC9d1
3+
E/VHEXWk9IkHetUpYRQRNBMfJntBxh4v2TDYhdqwL9FkHrXsik1dz5jbILAminxV
4+
OJQ5H+qA1y8syQUyXs/DeeVwop3s5J+VeWV7dgNZ4Wi7RoN4rDZTsymIwvzyby9j
5+
TrM+CP+6Mo7OEM5PuDr6G7jEkDvzkbHf2MXImF+OQOiu4S+dfeiYPDqH7rc4X+i9
6+
F8XAsZEUCmIUeapcyuHtTTeXQd+ib/vHilB4WjRzPp7Qo/wjehoIq89J2jatH71K
7+
dHUqy115NDMkYdEM8j60+xQVeuRL5xETSwIBAg==
8+
-----END DH PARAMETERS-----

test/fixtures/certs/server.crt

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIEBTCCAe2gAwIBAgIJAOjosSke3TMtMA0GCSqGSIb3DQEBCwUAMDUxEzARBgNV
2+
MIIEAzCCAeugAwIBAgIJAOjosSke3TM2MA0GCSqGSIb3DQEBCwUAMDUxEzARBgNV
33
BAoMClJlZGlzIFRlc3QxHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhvcml0eTAe
4-
Fw0yMjAzMTExMTM3NTBaFw0yMzAzMTExMTM3NTBaMCsxEzARBgNVBAoMClJlZGlz
5-
IFRlc3QxFDASBgNVBAMMC1NlcnZlci1vbmx5MIIBIjANBgkqhkiG9w0BAQEFAAOC
6-
AQ8AMIIBCgKCAQEAwfvzZULN5wJjM1/WVgXKcxy47qEf1jY7ukZT1ecoRJTPZJPI
7-
wIhxSZISpUYGMa6tSvC3l/2hwxyLhvrGXtILDX1RNTzA9U4H4JXExGsf6FpY7VF/
8-
c+gPUvvrwozggBk2t6FabNaSLDfpkVDHKS6L8HSKYXT5LksUWO/4adl2ddgq6Yvx
9-
OdTp/AWLJ/IOk8GLAEFXxpZ/a3qf8pfB0zppODGArBBgqYC5jDbQ3xSvBL70vNOw
10-
oszs0nfNJ/eZtHkHiJlMKSxiXCliamYYE4MJtZxuoK3/gYMWxGJaXnX1EFPMBr/Q
11-
6Yc4cESvYSOS1gWnRbk6w/bpi2+IjiYfUFmtlwIDAQABoyIwIDALBgNVHQ8EBAMC
12-
BaAwEQYJYIZIAYb4QgEBBAQDAgZAMA0GCSqGSIb3DQEBCwUAA4ICAQAQcSYdokUn
13-
yStu77pk6jWvCT7zMJ0ty0HEZxuXYG/h4OJz50Zc6/l0eR+CfZOgErr88+mAwVoY
14-
YJtGe+bF2p+NsYv+ruWyZhu5kmSJzDefBcjiUNbLO/M3JLPdbT8mUpv5Y7zxzR1g
15-
osVyNf+Jps07G9PTrZJZVYO9cE8kjdE+Kiz7DMW+/KZOLLFfKlYPb/lPLF7hKDi5
16-
z1SfX9z76OigT95OgTZ1LhRyD5xnwSgG6yE6TGOTdxLgeyUFDDsflXbjnRa+W4RU
17-
GFHXiw/KB240ZasZhDwa98st7wUvZwZSQXxbjwloyT+35X4za0unz9kHgDqNGAN5
18-
sGLmyH8lbTdh741ovOAyP+vqMA7fDuuxngw0ow8nuM7jKbg0o+f+uWc8wqYLgx3S
19-
yJgTD5ybO1kNM2o44Kni5IrGZP8ANyLuBRCb7wxHiubYXdLBO2H8dh7LsKGLVqLn
20-
W4+br80kOlBtyxfLxjiB9rWNNKm3VnhgOzv7K+Qc8pEjrSmfvtcHM0uGkhZS7z9o
21-
zLNKN1CXWsAXbcGHxL3IUCGXhVQ6ylHW6cbX5S6QwyECWO/7A4QwPHpQU+PkN22U
22-
JEkTiApehHuOoKB5HjsFBdpme0RJdWyMxDJunj4bOTUlkN51UDubPx3LfXuSs+8J
23-
ArihDT/CUL1kw7nCpTKv9itIFN3TLqWQfA==
4+
Fw0yMjA0MTMxMTIzNDdaFw0yMzA0MTMxMTIzNDdaMCkxEzARBgNVBAoMClJlZGlz
5+
IFRlc3QxEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
6+
ADCCAQoCggEBAMH782VCzecCYzNf1lYFynMcuO6hH9Y2O7pGU9XnKESUz2STyMCI
7+
cUmSEqVGBjGurUrwt5f9ocMci4b6xl7SCw19UTU8wPVOB+CVxMRrH+haWO1Rf3Po
8+
D1L768KM4IAZNrehWmzWkiw36ZFQxykui/B0imF0+S5LFFjv+GnZdnXYKumL8TnU
9+
6fwFiyfyDpPBiwBBV8aWf2t6n/KXwdM6aTgxgKwQYKmAuYw20N8UrwS+9LzTsKLM
10+
7NJ3zSf3mbR5B4iZTCksYlwpYmpmGBODCbWcbqCt/4GDFsRiWl519RBTzAa/0OmH
11+
OHBEr2EjktYFp0W5OsP26YtviI4mH1BZrZcCAwEAAaMiMCAwCwYDVR0PBAQDAgWg
12+
MBEGCWCGSAGG+EIBAQQEAwIGQDANBgkqhkiG9w0BAQsFAAOCAgEACFLDUtMlSU45
13+
g5s+x30mqRKJINDepBQHszECn2UgkWW6iQ7Uim7iROrWyGTR8alC9l+lTYgRu+D9
14+
P819sT7Zr4olBhh9ygeSqCVF/j8Bhzb4J5msAhVh7y8689JLFtyzQ07LeijXfY0o
15+
n6xMd+MdjyDeWb51LVTxE41Ko14/ahvcHvQ6IaUibmxAKfFDPIfIi1KwFoLp56MP
16+
kV+7XgFOn/zj81hAKhXXT/SejlFx0MEivGNhJrPyQ3MfGzGgG/cfdEokONxDHdRp
17+
s1Kqz4yAgtWSgt7xpSqeezSbxPRzusiSKg8rNCOZ6ajJoKx9qDACKhuLa+BOZ/kz
18+
eq57FLOB6nrsTb82vagT74jfoJEsss14Unz2fKm/deUcBKTmmliQcK9DejmXZF/r
19+
Dsk7j4kfPUO9I1aY47wYvPueS9bQ8glKa4I4p5OgxczEV9qqtJqAHbytL5iW5cBf
20+
sURc2QGFzJYxPn9Qxl01gvIOdUMKPQXjnGtd7LoabrXErnXWoU0SwYZXWX7xYG6a
21+
1z8fXMvdgaOk8r1WwIBna1cB7zgVutth1Cr3LRO9Rrg/NrQqiLzEMOQnNoiWSDJD
22+
cSuLiSQx9+JCWs4NaY9rig6se99Zv9yx7b1zp4defFVfQ5dglJc+wS7ZEpGsBG58
23+
+vYELCFf4G+vKsowYSGB9S7BgRdmfpQ=
2424
-----END CERTIFICATE-----

test/fixtures/generate-certs.sh

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/bin/bash
2+
3+
# Generate some test certificates which are used by the regression test suite:
4+
#
5+
# test/fixtures/certs/ca.{crt,key} Self signed CA certificate.
6+
# test/fixtures/certs/redis.{crt,key} A certificate with no key usage/policy restrictions.
7+
# test/fixtures/certs/client.{crt,key} A certificate restricted for SSL client usage.
8+
# test/fixtures/certs/server.{crt,key} A certificate restricted for SSL server usage.
9+
# test/fixtures/certs/redis.dh DH Params file.
10+
11+
generate_cert() {
12+
local name=$1
13+
local cn="$2"
14+
local opts="$3"
15+
16+
local keyfile=test/fixtures/certs/${name}.key
17+
local certfile=test/fixtures/certs/${name}.crt
18+
19+
[ -f $keyfile ] || openssl genrsa -out $keyfile 2048
20+
openssl req \
21+
-new -sha256 \
22+
-subj "/O=Redis Test/CN=$cn" \
23+
-key $keyfile | \
24+
openssl x509 \
25+
-req -sha256 \
26+
-CA test/fixtures/certs/ca.crt \
27+
-CAkey test/fixtures/certs/ca.key \
28+
-CAserial test/fixtures/certs/ca.txt \
29+
-CAcreateserial \
30+
-days 365 \
31+
$opts \
32+
-out $certfile
33+
}
34+
35+
mkdir -p tests/tls
36+
[ -f test/fixtures/certs/ca.key ] || openssl genrsa -out test/fixtures/certs/ca.key 4096
37+
openssl req \
38+
-x509 -new -nodes -sha256 \
39+
-key test/fixtures/certs/ca.key \
40+
-days 3650 \
41+
-subj '/O=Redis Test/CN=Certificate Authority' \
42+
-out test/fixtures/certs/ca.crt
43+
44+
cat > test/fixtures/certs/openssl.cnf <<_END_
45+
[ server_cert ]
46+
keyUsage = digitalSignature, keyEncipherment
47+
nsCertType = server
48+
[ client_cert ]
49+
keyUsage = digitalSignature, keyEncipherment
50+
nsCertType = client
51+
_END_
52+
53+
generate_cert server "127.0.0.1" "-extfile test/fixtures/certs/openssl.cnf -extensions server_cert"
54+
generate_cert client "127.0.0.1" "-extfile test/fixtures/certs/openssl.cnf -extensions client_cert"
55+
generate_cert redis "127.0.0.1"
56+
57+
[ -f test/fixtures/certs/redis.dh ] || openssl dhparam -out test/fixtures/certs/redis.dh 2048

test/support/client_test_helper.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ def ssl_config
5656
timeout: 0.1,
5757
ssl: true,
5858
ssl_params: {
59-
verify_hostname: false, # TODO: See if we could actually verify the hostname with our CI and dev setup
6059
cert: Servers::CERTS_PATH.join("client.crt").to_s,
6160
key: Servers::CERTS_PATH.join("client.key").to_s,
6261
ca_file: Servers::CERTS_PATH.join("ca.crt").to_s,

0 commit comments

Comments
 (0)