Skip to content

Commit

Permalink
chore: Added TLS verification for Redis (#2446)
Browse files Browse the repository at this point in the history
  • Loading branch information
jsumners-nr authored Aug 12, 2024
1 parent 3766895 commit 9a16b70
Show file tree
Hide file tree
Showing 12 changed files with 275 additions and 3 deletions.
13 changes: 12 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,20 @@ services:

redis:
container_name: nr_node_redis
image: redis
image: bitnami/redis
ports:
- "6379:6379"
- "6380:6380"
environment:
- ALLOW_EMPTY_PASSWORD=yes
- REDIS_TLS_ENABLED=yes
- REDIS_TLS_PORT=6380
- REDIS_TLS_CERT_FILE=/tls/redis.crt
- REDIS_TLS_KEY_FILE=/tls/redis.key
- REDIS_TLS_CA_FILE=/tls/ca.crt
- REDIS_TLS_AUTH_CLIENTS=no
volumes:
- "./docker/redis:/tls"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 1s
Expand Down
3 changes: 3 additions & 0 deletions docker/redis/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.req
!*.key
!*.crt
31 changes: 31 additions & 0 deletions docker/redis/ca.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFQTCCAymgAwIBAgIUIkqwOT8o/3S7bbBCBiBlug41jY4wDQYJKoZIhvcNAQEL
BQAwMDEOMAwGA1UECgwFUmVkaXMxHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhv
cml0eTAeFw0yNDA4MDgxNDI4MzNaFw0zNDA4MDYxNDI4MzNaMDAxDjAMBgNVBAoM
BVJlZGlzMR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQDeOcmk8R0d7R2/rFbfBgQFAsPolCSugUBT
FAnnpFCYAVvmadc+BpdUv7/tEHdvZOdOdZa9f9b1Xprq1AcZMeZsmZrKRHCkx6YW
bWtea0qWL73gEbkDnE2YbdOKZx0H1+nblpp10ywwtvCupL6off4Cdwy8wLXJiPth
K1MoOCgTL3I0elNl5AGv/ccnoz8BHQ59TY5+t25B9wO67pm7LdppJXYgqx2LQ9QH
Jfw7KGAsfoo0ujZ6F9VnqvqU8oIJ8iqn/dF5YTzDvzB0M79dbdL863Rk+0J0wTzP
FCZuuqwZYXMJf1tZnTNyRGCrcffF5qw1+wzvW0aGsyz6nQoA9CDSL8JTE3WqeFIH
Ltq6Naa60CpdDqxl19lYNjt4oVrfoK9bU87+z1GftVFl7ljZIsWn9XZH+MscUobs
Olhw2iVpYngC96xxDXwL/Q6gFiGhDdkdlbDq+TgTfjSaXyW6Xqhz93dNDEXjNT9H
7u8iWi13Z+w0C4KyPGioHb9Skvb85mfDiKz0c/gbPIkO9FuXDPlLZBcBOnYFoTL3
k+XLJ0I4eBXIfJXZ6PZkdWpw3fjpRxYSh43tKk3MoMGM+R4pASMiE618fZ8drBec
zSkiAsJaD3gzs5TlRrPQlNA2VibLvsYOmYHGcRImcrQorIF+2ICMLGMCfq+f3DDb
UBfJF2iGGwIDAQABo1MwUTAdBgNVHQ4EFgQUM1iXaB+TOowF4Jfza+KrX3pikmAw
HwYDVR0jBBgwFoAUM1iXaB+TOowF4Jfza+KrX3pikmAwDwYDVR0TAQH/BAUwAwEB
/zANBgkqhkiG9w0BAQsFAAOCAgEAUmcwZvT0feYkDDbFnHGytL56Pfoncs2hy4j/
SW8aQ1USwXScYetNwsapSu2g/0ThBKaGDH/zPlNwicAiY2MzdyAAEFhqGXDhovIL
zc6gLbAITfy3m7uvmuBJolSuwIn8aqMvxXLmORNH7bcw6Nn0V9RUMmqicwlV6281
wLsbxeW5YW7VQgxlus3THkjd+QozdplqQFSLG6uxhgOvBPJFNunynJxanuZGnY/j
9NYHcD5l5ADr0JpeiecJxKTM7HCOSiBjass6h6KFfqFz8e5yti6DPt/eRswkSQ/W
58O2QbThmEbJ7OubzfvSX/fJhoxlJiCc6ZTY8qWeGl0V5LdW6dIGA1Ds2kguVVrb
nktjeekIiINcSetNyXeNqeWVm0htXDzXPsScEeCDqPPq41n7ktGH0W6FqChiqYCf
e9NlQhcz61exXa0Rn1vua5cHZLxZ/5n/1lHNTyfZi0Py+1cdmxn1XFRltrVWMm67
wGsdVKU93y7Zh+/djPIShcB3Auful1aC4PeNya49cKracnoAx0kRx6SPmssCfhbu
JNqpAWbpP4tA/+r8ti/84l7pXFTL9n6OJi2vvUdndLXeK92K+T3+m+sl2u2x9NHk
C931gMu5/WEzP7fsC9WDXw3t2alG9BRvA2AUUiECVT1v/Ktb3QO1clozv9+pZupD
U0oITpQ=
-----END CERTIFICATE-----
52 changes: 52 additions & 0 deletions docker/redis/ca.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
YpRxs9Qgfw04XTPN1t4fj6s1w6u0MQ==
-----END PRIVATE KEY-----
1 change: 1 addition & 0 deletions docker/redis/ca.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
141E6AEEA165D992A53AEDBF732949EA4B278E51
27 changes: 27 additions & 0 deletions docker/redis/gen-cert.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash

# Based upon https://github.com/redis/redis/blob/3a08819f5169f9702cde680acb6bf0c75fa70ffb/utils/gen-test-certs.sh

set -e

openssl genrsa -out ca.key 4096
openssl req \
-x509 -new -nodes -sha256 \
-key ca.key \
-days 3650 \
-subj '/O=Redis/CN=Certificate Authority'\
-out ca.crt

openssl genrsa -out redis.key 2048
openssl req \
-new -sha256 \
-subj "/O=Redis/CN=redis" \
-key redis.key | openssl x509 \
-req \
-sha256 \
-CA ca.crt \
-CAkey ca.key \
-CAserial ca.txt \
-CAcreateserial \
-days 3650 \
-out redis.crt
25 changes: 25 additions & 0 deletions docker/redis/redis.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
-----BEGIN CERTIFICATE-----
MIIEQDCCAiigAwIBAgIUFB5q7qFl2ZKlOu2/cylJ6ksnjlEwDQYJKoZIhvcNAQEL
BQAwMDEOMAwGA1UECgwFUmVkaXMxHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhv
cml0eTAeFw0yNDA4MDgxNDI4MzNaFw0zNDA4MDYxNDI4MzNaMCAxDjAMBgNVBAoM
BVJlZGlzMQ4wDAYDVQQDDAVyZWRpczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBAJD2mnJjQdoJHG8EuZCDndukDnUFEtFIvHp4jwxQDa0wENlc74M75yWm
mX39/Py6jgQcu8DD1wu7ShSAbfEVRLcIBdItkpncLutjbzzKCf0ZsMe57/Lizmoz
QkgtVQW0OqtuLLC4H4HqkxrJoyN1z34c2xwnMxWKAuiVZ7+hXgP6PxjYp4zMUp+S
hBQqlnD/Cg680usRGtuzCASsgPUo2fw8ec8sVloI9Im4RnvOPUwHgcRJuxGIImLG
821lxQmNP5sMdechHcQzGLuHwzeIjwfx7WJXMkKMoDziBAJkeb/bAA1t50sGex3l
K99fueqU4lQSjEMomyk3+D3zIilFPcECAwEAAaNiMGAwCwYDVR0PBAQDAgWgMBEG
CWCGSAGG+EIBAQQEAwIGQDAdBgNVHQ4EFgQUkqLWXtErfjQQ4MPZi1FCEHaIK/ow
HwYDVR0jBBgwFoAUM1iXaB+TOowF4Jfza+KrX3pikmAwDQYJKoZIhvcNAQELBQAD
ggIBAB0qvXaiXhoTS8CyVCatSfrjaepJRbxsJEzzCe2A/G6FXPw4yO5vFvniqSo9
wQYDi166wyc14XFrArUpewPgEjKLmoCxcwQOrJSHQ+DQJ/dw07XbiwBQygxt98eB
OXin4efcW8ydfsLXozK61r9UEvfPlo/St3Q09PxQgDwCW8D7Uos/6bxsKIfPqzjI
/hEnpjzTpCy2iuBzG+UDLAvVlB7ZSOpz3H+FBxJzAFAkYs82sx7pZZkNduPoHerO
lIdI5oJCZmpnsW+pv8pd6MCNdR4cV5b/wazR5PzGAQW2MAW7LCTy5WI6myC+EBdS
q46Var/mmDGh54sGreVMMGSvrsdcR3gFrUN+ZUbkZanjyI2EKl38M+WNlpm3UYLn
G0BlD6Ude8Ic7BbawS8Cx2Z+jvAcAr1KQs8nn1c4PpEvkdz+Lj1tzNWA3pjZu0Tf
x3XGj41iJLre9Deehe5akjWg6x8ho9sbvUasNIlh6F9JTZE+AZyis0WbhNIlh75/
mnS1TufJ3uoJX2f1imLm2gJHeoYj8Ff16qnpvRvgxJT15Ut18CC2sn1n47bu/V6N
dgodOWEqBDxccP4K3e9TsI8WNoEThc2tXKGrzanN+4qxR7XXgW5jcdzoHGmdxTBZ
ll1Hx8gPQuEfOtU73CGCY6yvSjA8kHh2mnXJcHjZy3Kbxg5B
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions docker/redis/redis.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCQ9ppyY0HaCRxv
BLmQg53bpA51BRLRSLx6eI8MUA2tMBDZXO+DO+clppl9/fz8uo4EHLvAw9cLu0oU
gG3xFUS3CAXSLZKZ3C7rY288ygn9GbDHue/y4s5qM0JILVUFtDqrbiywuB+B6pMa
yaMjdc9+HNscJzMVigLolWe/oV4D+j8Y2KeMzFKfkoQUKpZw/woOvNLrERrbswgE
rID1KNn8PHnPLFZaCPSJuEZ7zj1MB4HESbsRiCJixvNtZcUJjT+bDHXnIR3EMxi7
h8M3iI8H8e1iVzJCjKA84gQCZHm/2wANbedLBnsd5SvfX7nqlOJUEoxDKJspN/g9
8yIpRT3BAgMBAAECggEAKsKLKU2s+Ycxe2/t2rpwIH9CgnMWK2SksA2KyIt+lUT1
22AGCHRtiNYdNaRrcRMIXB8rpL8/2iaLQgPmKjRnWgQET4yAz2C6+FUS1WAVVTK0
Sh3HMSKE15+6H/c7Op0Ap1uu1Avjw1sxvDeZJxcTtvQFD8diUqqsk/WqLkUHqe0/
3fCRUOgJNodAIIY9DEnq7YxBmQPKmsCudHAQNBU6v0NIYDfD9g1y5omy1pZ80XJP
ijFgYVXcjI89OGO0nS2/N8AOBktQ9jKIov7MIqJ74Y0MVqZJbiizDFpGPvYYFXZZ
UYd2UAyQBIRHojQsJ/bqVeMZqfQaSmfcbSeQDhCjzwKBgQDIWrtdG8ZFzFPjhF/5
+PIrWUjYurVV1/zSeFIG7ANfG9epNsxEl5wg4ALO4/XlLxkEYRA+NyGx7p/KcPmj
LNprbt8Hd6HsYXTbXoT9+5xn9MoRGwDFKVhl7TWkNSMLcsPTQ1pCrhYLUrci6GIF
9I/6TCOoe814VIIaZdRQ6iEgrwKBgQC5OYsTUcJ9wDqL4TIZ+BLrQbQOdbR6/NJh
UEcpEy9qCeOjQJ7++iof0JuXuq6hkh7fN68TILO88bjxzxLvu8/zYq/p/3kO5SS2
oeL60kBUSON9fewNu3pAiNnLj4OQYVv5LYTB0BqRN49rW5kPkKwd/Z/nRHgI7Z4o
ac2BO6LEjwKBgQCdW+3GnjbmwSmuC10aRvVlKJX3awVba+1tHQVH3Hx1abfDdn+O
7Ai7JVXvSsnpfElI0Dditghn6MRlyr+28laGhKj1A3gQ4SZX2W/Yz5Kzb2Z5ctzy
/ZspStqTowxoRHYbas3sizBTKl8eMqgyhzfB3aUwAjSJ6s3Yj9vmxUzJjwKBgG84
FkJrfZV0r7L+bc8aHoIU2cE0/EI9PTYhthj75CSP+5gzXUVNga3I3SSme+WYj+EI
1p9tq39wxdSsunopFBzYzTh8pnxDK2BepKRnSylQ+wiHbA5y3F2TzvNkIWO4kjl1
E5otE0bPTdbxEV8/R5paiIGdo1X5GFa78SIAZSQRAoGABQMu1XZWHA41BL1Wwd1I
VtZMmWnTfg9lN7DSIOeMMicuCt+Dam0NSJi2u6NxM9HJ/ACzm7TfnfH5vyRBaYl6
cMzfUSR8HE5wnlAFOYsTCgj5ksjpk1mZ+obJGjA8c1PpA0ZGMxry1x20auGvlgd+
AAYDp2njFzBuYeFbM/iJ18U=
-----END PRIVATE KEY-----
2 changes: 1 addition & 1 deletion lib/instrumentation/@node-redis/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ function getRedisParams(clientOpts) {
// see: https://github.com/redis/node-redis/blob/5576a0db492cda2cd88e09881bc330aa956dd0f5/packages/client/lib/client/index.ts#L160
if (clientOpts?.url) {
const parsedURL = new URL(clientOpts.url)
clientOpts.socket = { host: parsedURL.hostname }
clientOpts.socket = Object.assign({}, clientOpts.socket, { host: parsedURL.hostname })
if (parsedURL.port) {
clientOpts.socket.port = parsedURL.port
}
Expand Down
2 changes: 2 additions & 0 deletions test/lib/params.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ module.exports = {

redis_host: process.env.NR_NODE_TEST_REDIS_HOST || 'localhost',
redis_port: process.env.NR_NODE_TEST_REDIS_PORT || 6379,
redis_tls_host: process.env.NR_NODE_TEST_REDIS_TLS_HOST || '127.0.0.1',
redis_tls_port: process.env.NR_NODE_TEST_REDIS_TLS_PORT || 6380,

cassandra_host: process.env.NR_NODE_TEST_CASSANDRA_HOST || 'localhost',
cassandra_port: process.env.NR_NODE_TEST_CASSANDRA_PORT || 9042,
Expand Down
3 changes: 2 additions & 1 deletion test/versioned/redis/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
},
"files": [
"redis-v4.tap.js",
"redis-v4-legacy-mode.tap.js"
"redis-v4-legacy-mode.tap.js",
"tls.tap.js"
]
}
]
Expand Down
91 changes: 91 additions & 0 deletions test/versioned/redis/tls.tap.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
/*
* Copyright 2024 New Relic Corporation. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/

'use strict'

const tap = require('tap')
const helper = require('../../lib/agent_helper')
const promiseResolvers = require('../../lib/promise-resolvers')
const { redis_tls_host: HOST, redis_tls_port: PORT } = require('../../lib/params')
const { removeModules } = require('../../lib/cache-buster')

tap.test('redis over tls connection', (t) => {
t.afterEach(() => {
removeModules(['redis'])
})

t.test('should work with self-signed tls cert on server', async (t) => {
const { promise, resolve } = promiseResolvers()
const agent = helper.instrumentMockedAgent()
const redis = require('redis')
const client = await redis
.createClient({
url: `rediss://${HOST}:${PORT}`,
socket: {
tls: true,
rejectUnauthorized: false
}
})
.on('error', (error) => {
throw error
})
.connect()
await client.flushAll()

t.teardown(async () => {
await client.flushAll()
await client.disconnect()
helper.unloadAgent(agent)
})

helper.runInTransaction(agent, async function transactionInScope() {
const tx = agent.getTransaction()
await client.set('tls-test', 'foo')
const found = await client.get('tls-test')
t.equal(found, 'foo')
tx.end()
resolve()
})

await promise
})

t.test('url parsing should add tls true', async (t) => {
const { promise, resolve } = promiseResolvers()
const agent = helper.instrumentMockedAgent()
const redis = require('redis')
const client = await redis
.createClient({
url: `rediss://${HOST}:${PORT}`,
socket: {
rejectUnauthorized: false
}
})
.on('error', (error) => {
throw error
})
.connect()
await client.flushAll()

t.teardown(async () => {
await client.flushAll()
await client.disconnect()
helper.unloadAgent(agent)
})

helper.runInTransaction(agent, async function transactionInScope() {
const tx = agent.getTransaction()
await client.set('tls-test', 'foo')
const found = await client.get('tls-test')
t.equal(found, 'foo')
tx.end()
resolve()
})

await promise
})

t.end()
})

0 comments on commit 9a16b70

Please sign in to comment.