mongo 2.9.0.rc0 → 2.9.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.md +1 -3
- data/lib/mongo/client.rb +33 -16
- data/lib/mongo/collection/view/aggregation.rb +3 -2
- data/lib/mongo/collection/view/map_reduce.rb +3 -2
- data/lib/mongo/server/connectable.rb +8 -4
- data/lib/mongo/server/connection.rb +0 -1
- data/lib/mongo/server/monitor/connection.rb +0 -1
- data/lib/mongo/socket/ssl.rb +67 -10
- data/lib/mongo/version.rb +1 -1
- data/spec/README.md +39 -3
- data/spec/integration/auth_spec.rb +2 -2
- data/spec/integration/ssl_uri_options_spec.rb +7 -6
- data/spec/lite_spec_helper.rb +0 -16
- data/spec/mongo/client_construction_spec.rb +13 -13
- data/spec/mongo/collection/view/map_reduce_spec.rb +8 -0
- data/spec/mongo/server_spec.rb +2 -1
- data/spec/mongo/socket/ssl_spec.rb +213 -20
- data/spec/mongo/socket/tcp_spec.rb +1 -1
- data/spec/support/certificates/README.md +101 -0
- data/spec/support/certificates/ca.crt +76 -0
- data/spec/support/certificates/{client_key_encrypted.pem → client-encrypted.key} +0 -0
- data/spec/support/certificates/client-int.crt +78 -0
- data/spec/support/certificates/client-second-level-bundle.pem +179 -0
- data/spec/support/certificates/client-second-level.crt +74 -0
- data/spec/support/certificates/client-second-level.key +27 -0
- data/spec/support/certificates/client-second-level.pem +101 -0
- data/spec/support/certificates/client.crt +74 -0
- data/spec/support/certificates/{client_key.pem → client.key} +1 -1
- data/spec/support/certificates/client.pem +1 -1
- data/spec/support/certificates/multi-ca.crt +152 -0
- data/spec/support/certificates/python-ca.crt +76 -0
- data/spec/support/certificates/server-int.crt +78 -0
- data/spec/support/certificates/server-second-level-bundle.pem +179 -0
- data/spec/support/certificates/server-second-level.crt +74 -0
- data/spec/support/certificates/server-second-level.key +27 -0
- data/spec/support/certificates/server-second-level.pem +101 -0
- data/spec/support/certificates/server.pem +74 -22
- data/spec/support/constraints.rb +3 -7
- data/spec/support/spec_config.rb +84 -16
- metadata +36 -10
- metadata.gz.sig +0 -0
- data/spec/support/certificates/ca.pem +0 -22
- data/spec/support/certificates/client_cert.pem +0 -22
@@ -0,0 +1,74 @@
|
|
1
|
+
Certificate:
|
2
|
+
Data:
|
3
|
+
Version: 3 (0x2)
|
4
|
+
Serial Number: 403728 (0x62910)
|
5
|
+
Signature Algorithm: sha256WithRSAEncryption
|
6
|
+
Issuer: CN = intermediate-server, OU = Ruby Driver, O = MongoDB, L = New York City, ST = New York, C = US
|
7
|
+
Validity
|
8
|
+
Not Before: May 30 22:28:04 2019 GMT
|
9
|
+
Not After : May 30 22:28:04 2039 GMT
|
10
|
+
Subject: CN = localhost, OU = Ruby Driver, O = MongoDB, L = New York City, ST = New York, C = US
|
11
|
+
Subject Public Key Info:
|
12
|
+
Public Key Algorithm: rsaEncryption
|
13
|
+
RSA Public-Key: (2048 bit)
|
14
|
+
Modulus:
|
15
|
+
00:94:9a:50:f9:bc:68:39:68:e3:54:1d:48:d9:83:
|
16
|
+
b7:7f:8c:59:cd:54:8d:ba:af:13:ef:25:a5:9d:c4:
|
17
|
+
d6:0a:f4:10:c4:ee:e7:b5:60:81:83:5f:3f:88:bd:
|
18
|
+
63:d7:39:68:8d:2b:d6:85:a8:f6:4a:6e:52:6c:f1:
|
19
|
+
03:71:a7:2e:2f:e2:80:6a:c3:5a:94:7a:70:2c:5f:
|
20
|
+
a1:ea:17:e5:db:54:24:75:d3:3a:8d:83:22:96:76:
|
21
|
+
21:9f:b5:51:ff:b8:4d:33:b8:6c:39:bb:68:98:71:
|
22
|
+
50:b5:41:67:bd:f5:76:f8:49:1e:58:fe:d7:a4:54:
|
23
|
+
c1:15:25:b1:24:2f:20:ea:56:a4:29:2f:83:f4:c2:
|
24
|
+
a9:13:12:a1:f3:9b:9e:95:6d:25:c4:bf:d9:74:0f:
|
25
|
+
d3:1f:7a:87:f7:a8:f8:82:8b:0d:4f:e8:5b:6e:32:
|
26
|
+
00:e0:e8:8a:35:91:75:82:56:37:7f:f5:ab:5d:0f:
|
27
|
+
7f:b9:61:62:13:e4:38:44:f8:3b:58:f9:87:23:6a:
|
28
|
+
aa:79:cf:6b:df:52:2b:40:0c:4d:12:b0:84:ac:40:
|
29
|
+
f3:6e:f1:0f:37:23:f0:54:7c:f5:e3:b8:0b:20:77:
|
30
|
+
27:ef:7f:2a:bf:20:ee:06:50:25:0b:42:57:1a:45:
|
31
|
+
ca:a2:65:71:e1:bf:5d:f1:79:6f:66:3d:22:28:b9:
|
32
|
+
d9:93
|
33
|
+
Exponent: 65537 (0x10001)
|
34
|
+
X509v3 extensions:
|
35
|
+
X509v3 Subject Alternative Name:
|
36
|
+
DNS:localhost, IP Address:127.0.0.1
|
37
|
+
Signature Algorithm: sha256WithRSAEncryption
|
38
|
+
8a:2d:64:a3:92:30:31:8c:b8:50:8d:20:9f:24:e9:62:8f:98:
|
39
|
+
e4:6b:4b:75:3b:90:fb:51:b3:65:79:a8:5f:ac:fc:57:f1:ca:
|
40
|
+
34:72:6b:07:37:82:d0:b8:89:a4:6d:eb:4a:2e:c5:7c:f6:eb:
|
41
|
+
bf:40:84:5d:56:0c:77:c8:79:f6:28:6c:86:50:ad:0b:d4:99:
|
42
|
+
58:ec:da:b3:ad:e0:55:93:b6:be:2f:4a:29:dd:4c:f4:41:85:
|
43
|
+
41:59:ba:3f:0a:3d:ce:c5:66:c6:41:c6:b0:94:f5:f9:f9:e9:
|
44
|
+
ff:85:c4:df:f7:36:33:7e:80:fc:b6:89:cc:d8:72:c8:2f:ae:
|
45
|
+
49:80:c7:65:c2:ec:5b:31:c1:ed:da:76:39:92:bf:cb:d9:8a:
|
46
|
+
ef:44:7c:a3:e3:ae:db:17:19:4d:7e:4e:e5:61:09:bc:18:b8:
|
47
|
+
c4:09:b7:46:d8:0f:f9:6f:d8:60:ec:ec:a5:51:28:a7:06:83:
|
48
|
+
bd:5d:39:76:aa:26:cc:b1:d0:ac:f4:ad:88:40:0d:8b:73:32:
|
49
|
+
62:a8:5e:47:12:99:6c:a1:6a:25:a3:f4:62:45:5e:89:36:d4:
|
50
|
+
17:ed:e4:54:cf:1d:6a:67:19:67:eb:4e:64:83:7b:5b:67:e4:
|
51
|
+
a4:e5:26:1d:0e:56:4f:7f:b7:32:19:44:85:fe:ba:ae:58:d4:
|
52
|
+
e3:ed:a5:71
|
53
|
+
-----BEGIN CERTIFICATE-----
|
54
|
+
MIIDjTCCAnWgAwIBAgIDBikQMA0GCSqGSIb3DQEBCwUAMH4xHDAaBgNVBAMTE2lu
|
55
|
+
dGVybWVkaWF0ZS1zZXJ2ZXIxFDASBgNVBAsTC1J1YnkgRHJpdmVyMRAwDgYDVQQK
|
56
|
+
EwdNb25nb0RCMRYwFAYDVQQHEw1OZXcgWW9yayBDaXR5MREwDwYDVQQIEwhOZXcg
|
57
|
+
WW9yazELMAkGA1UEBhMCVVMwHhcNMTkwNTMwMjIyODA0WhcNMzkwNTMwMjIyODA0
|
58
|
+
WjB0MRIwEAYDVQQDEwlsb2NhbGhvc3QxFDASBgNVBAsTC1J1YnkgRHJpdmVyMRAw
|
59
|
+
DgYDVQQKEwdNb25nb0RCMRYwFAYDVQQHEw1OZXcgWW9yayBDaXR5MREwDwYDVQQI
|
60
|
+
EwhOZXcgWW9yazELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
61
|
+
ggEKAoIBAQCUmlD5vGg5aONUHUjZg7d/jFnNVI26rxPvJaWdxNYK9BDE7ue1YIGD
|
62
|
+
Xz+IvWPXOWiNK9aFqPZKblJs8QNxpy4v4oBqw1qUenAsX6HqF+XbVCR10zqNgyKW
|
63
|
+
diGftVH/uE0zuGw5u2iYcVC1QWe99Xb4SR5Y/tekVMEVJbEkLyDqVqQpL4P0wqkT
|
64
|
+
EqHzm56VbSXEv9l0D9Mfeof3qPiCiw1P6FtuMgDg6Io1kXWCVjd/9atdD3+5YWIT
|
65
|
+
5DhE+DtY+Ycjaqp5z2vfUitADE0SsISsQPNu8Q83I/BUfPXjuAsgdyfvfyq/IO4G
|
66
|
+
UCULQlcaRcqiZXHhv13xeW9mPSIoudmTAgMBAAGjHjAcMBoGA1UdEQQTMBGCCWxv
|
67
|
+
Y2FsaG9zdIcEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEAii1ko5IwMYy4UI0gnyTp
|
68
|
+
Yo+Y5GtLdTuQ+1GzZXmoX6z8V/HKNHJrBzeC0LiJpG3rSi7FfPbrv0CEXVYMd8h5
|
69
|
+
9ihshlCtC9SZWOzas63gVZO2vi9KKd1M9EGFQVm6Pwo9zsVmxkHGsJT1+fnp/4XE
|
70
|
+
3/c2M36A/LaJzNhyyC+uSYDHZcLsWzHB7dp2OZK/y9mK70R8o+Ou2xcZTX5O5WEJ
|
71
|
+
vBi4xAm3RtgP+W/YYOzspVEopwaDvV05dqomzLHQrPStiEANi3MyYqheRxKZbKFq
|
72
|
+
JaP0YkVeiTbUF+3kVM8damcZZ+tOZIN7W2fkpOUmHQ5WT3+3MhlEhf66rljU4+2l
|
73
|
+
cQ==
|
74
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEowIBAAKCAQEAlJpQ+bxoOWjjVB1I2YO3f4xZzVSNuq8T7yWlncTWCvQQxO7n
|
3
|
+
tWCBg18/iL1j1zlojSvWhaj2Sm5SbPEDcacuL+KAasNalHpwLF+h6hfl21QkddM6
|
4
|
+
jYMilnYhn7VR/7hNM7hsObtomHFQtUFnvfV2+EkeWP7XpFTBFSWxJC8g6lakKS+D
|
5
|
+
9MKpExKh85uelW0lxL/ZdA/TH3qH96j4gosNT+hbbjIA4OiKNZF1glY3f/WrXQ9/
|
6
|
+
uWFiE+Q4RPg7WPmHI2qqec9r31IrQAxNErCErEDzbvEPNyPwVHz147gLIHcn738q
|
7
|
+
vyDuBlAlC0JXGkXKomVx4b9d8XlvZj0iKLnZkwIDAQABAoIBAQCSQhwG4KgYMSLl
|
8
|
+
q/kClQBrGkFctabVIfJVw1DxKkWc/EDxA06tFvIB0iJfPEBjGY7Mu2Plo7nc4h5g
|
9
|
+
OQqxtuDfomfQLLwfPS7gjbN4CtNh/rvv99k+ZN4LBvPrE/RD4yqhCBgE7m5w876C
|
10
|
+
13/61/ijQJwM7a5igESVwsZJndUgrmg5m358QaMCi11upkhk3MnYK93P4S3RTaBs
|
11
|
+
pzxjSAbgMJ7vD7NUSe1oXKMBNNMgLbQumOp00q8tsZAOToSGYOQI69q3pONRaB+e
|
12
|
+
rrdu7qyDUBQHgZVB+bahtYmpHa0IxVOqAsZqfXNyPDgPRkRDkaoR8pTHbKX6a+a9
|
13
|
+
7Gr3ISe5AoGBAOAU94g04TBypSeiufE+4cB5+rXjmYIlTMs0x6KHunZr0XpRlMPv
|
14
|
+
y4upZQ+O4eo5rrEc0nAaHP/XvNfcogYzyy4qg7DrGl2Px4+iuoGvj5o/0wILZ2Hy
|
15
|
+
ZnWlmJiMctn9Z+MUhMNfLxjEzSly3Y+nZkMYLzNoIgdcqk9jjnw2d3lvAoGBAKnF
|
16
|
+
CsY7LNySixPHHAfCQt3rkEEvPQMMPStNp6ct84StYJyCGyOUyjLBjcBrq4/tOc/D
|
17
|
+
fpoJDBUMUJj9yrVp3he3x00cXAoneX2ED4jnNMMPm84blr02hSCwU/1ldyKDm34/
|
18
|
+
OXlym0UF0nYB2f3hrrwBTic5y2L90PdGfBUD5GgdAoGAcO2gIeCkbEoauXLkypOq
|
19
|
+
KdpPY0MkpdYucWpUAbDtY6jKlR5wHp7GscfYypJzgBs50sB3vU8rtjP/U7o5XW7U
|
20
|
+
wptiatLRIr3HELgtzhWwBUiNCsa8fzwuLrQZxydg6kMvC93XWq6piY4E5xKgXjk6
|
21
|
+
7C1P/FRKcfNdUU0XDbpVU7kCgYBWsbu1zSQ0o1UITYZf4/D3mMK6tt/GParDAU3b
|
22
|
+
DpkrqMoMQliPi/zRfIvhtloPDoqWMXPmPzZ/TSGfbwLkL2Lt47iQBSpvOQdOdHDm
|
23
|
+
bYNBFShwUSBiEYRcVA8f+H+lDWYLS0gTX9Ywoi9+eaWTg3sSoOwDFf1p2MmsbL8S
|
24
|
+
kEFEdQKBgCmc/NESy29MO3j8tH63UbdmD7BeHA36KNmRFzosE9O62eM5xcWsUeE0
|
25
|
+
Xd1vC0V8R9J4sF7ZcwfI9q/XW5I6wW4aKWlwCa1yx7A39Ea9UjiASmY7+hx3vn0z
|
26
|
+
4XAfT1HvR2ohvZYmhm1HAuYWuUvphquFrOXCxuycAvgcaXQBKR0L
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,101 @@
|
|
1
|
+
Certificate:
|
2
|
+
Data:
|
3
|
+
Version: 3 (0x2)
|
4
|
+
Serial Number: 403728 (0x62910)
|
5
|
+
Signature Algorithm: sha256WithRSAEncryption
|
6
|
+
Issuer: CN = intermediate-server, OU = Ruby Driver, O = MongoDB, L = New York City, ST = New York, C = US
|
7
|
+
Validity
|
8
|
+
Not Before: May 30 22:28:04 2019 GMT
|
9
|
+
Not After : May 30 22:28:04 2039 GMT
|
10
|
+
Subject: CN = localhost, OU = Ruby Driver, O = MongoDB, L = New York City, ST = New York, C = US
|
11
|
+
Subject Public Key Info:
|
12
|
+
Public Key Algorithm: rsaEncryption
|
13
|
+
RSA Public-Key: (2048 bit)
|
14
|
+
Modulus:
|
15
|
+
00:94:9a:50:f9:bc:68:39:68:e3:54:1d:48:d9:83:
|
16
|
+
b7:7f:8c:59:cd:54:8d:ba:af:13:ef:25:a5:9d:c4:
|
17
|
+
d6:0a:f4:10:c4:ee:e7:b5:60:81:83:5f:3f:88:bd:
|
18
|
+
63:d7:39:68:8d:2b:d6:85:a8:f6:4a:6e:52:6c:f1:
|
19
|
+
03:71:a7:2e:2f:e2:80:6a:c3:5a:94:7a:70:2c:5f:
|
20
|
+
a1:ea:17:e5:db:54:24:75:d3:3a:8d:83:22:96:76:
|
21
|
+
21:9f:b5:51:ff:b8:4d:33:b8:6c:39:bb:68:98:71:
|
22
|
+
50:b5:41:67:bd:f5:76:f8:49:1e:58:fe:d7:a4:54:
|
23
|
+
c1:15:25:b1:24:2f:20:ea:56:a4:29:2f:83:f4:c2:
|
24
|
+
a9:13:12:a1:f3:9b:9e:95:6d:25:c4:bf:d9:74:0f:
|
25
|
+
d3:1f:7a:87:f7:a8:f8:82:8b:0d:4f:e8:5b:6e:32:
|
26
|
+
00:e0:e8:8a:35:91:75:82:56:37:7f:f5:ab:5d:0f:
|
27
|
+
7f:b9:61:62:13:e4:38:44:f8:3b:58:f9:87:23:6a:
|
28
|
+
aa:79:cf:6b:df:52:2b:40:0c:4d:12:b0:84:ac:40:
|
29
|
+
f3:6e:f1:0f:37:23:f0:54:7c:f5:e3:b8:0b:20:77:
|
30
|
+
27:ef:7f:2a:bf:20:ee:06:50:25:0b:42:57:1a:45:
|
31
|
+
ca:a2:65:71:e1:bf:5d:f1:79:6f:66:3d:22:28:b9:
|
32
|
+
d9:93
|
33
|
+
Exponent: 65537 (0x10001)
|
34
|
+
X509v3 extensions:
|
35
|
+
X509v3 Subject Alternative Name:
|
36
|
+
DNS:localhost, IP Address:127.0.0.1
|
37
|
+
Signature Algorithm: sha256WithRSAEncryption
|
38
|
+
8a:2d:64:a3:92:30:31:8c:b8:50:8d:20:9f:24:e9:62:8f:98:
|
39
|
+
e4:6b:4b:75:3b:90:fb:51:b3:65:79:a8:5f:ac:fc:57:f1:ca:
|
40
|
+
34:72:6b:07:37:82:d0:b8:89:a4:6d:eb:4a:2e:c5:7c:f6:eb:
|
41
|
+
bf:40:84:5d:56:0c:77:c8:79:f6:28:6c:86:50:ad:0b:d4:99:
|
42
|
+
58:ec:da:b3:ad:e0:55:93:b6:be:2f:4a:29:dd:4c:f4:41:85:
|
43
|
+
41:59:ba:3f:0a:3d:ce:c5:66:c6:41:c6:b0:94:f5:f9:f9:e9:
|
44
|
+
ff:85:c4:df:f7:36:33:7e:80:fc:b6:89:cc:d8:72:c8:2f:ae:
|
45
|
+
49:80:c7:65:c2:ec:5b:31:c1:ed:da:76:39:92:bf:cb:d9:8a:
|
46
|
+
ef:44:7c:a3:e3:ae:db:17:19:4d:7e:4e:e5:61:09:bc:18:b8:
|
47
|
+
c4:09:b7:46:d8:0f:f9:6f:d8:60:ec:ec:a5:51:28:a7:06:83:
|
48
|
+
bd:5d:39:76:aa:26:cc:b1:d0:ac:f4:ad:88:40:0d:8b:73:32:
|
49
|
+
62:a8:5e:47:12:99:6c:a1:6a:25:a3:f4:62:45:5e:89:36:d4:
|
50
|
+
17:ed:e4:54:cf:1d:6a:67:19:67:eb:4e:64:83:7b:5b:67:e4:
|
51
|
+
a4:e5:26:1d:0e:56:4f:7f:b7:32:19:44:85:fe:ba:ae:58:d4:
|
52
|
+
e3:ed:a5:71
|
53
|
+
-----BEGIN CERTIFICATE-----
|
54
|
+
MIIDjTCCAnWgAwIBAgIDBikQMA0GCSqGSIb3DQEBCwUAMH4xHDAaBgNVBAMTE2lu
|
55
|
+
dGVybWVkaWF0ZS1zZXJ2ZXIxFDASBgNVBAsTC1J1YnkgRHJpdmVyMRAwDgYDVQQK
|
56
|
+
EwdNb25nb0RCMRYwFAYDVQQHEw1OZXcgWW9yayBDaXR5MREwDwYDVQQIEwhOZXcg
|
57
|
+
WW9yazELMAkGA1UEBhMCVVMwHhcNMTkwNTMwMjIyODA0WhcNMzkwNTMwMjIyODA0
|
58
|
+
WjB0MRIwEAYDVQQDEwlsb2NhbGhvc3QxFDASBgNVBAsTC1J1YnkgRHJpdmVyMRAw
|
59
|
+
DgYDVQQKEwdNb25nb0RCMRYwFAYDVQQHEw1OZXcgWW9yayBDaXR5MREwDwYDVQQI
|
60
|
+
EwhOZXcgWW9yazELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
61
|
+
ggEKAoIBAQCUmlD5vGg5aONUHUjZg7d/jFnNVI26rxPvJaWdxNYK9BDE7ue1YIGD
|
62
|
+
Xz+IvWPXOWiNK9aFqPZKblJs8QNxpy4v4oBqw1qUenAsX6HqF+XbVCR10zqNgyKW
|
63
|
+
diGftVH/uE0zuGw5u2iYcVC1QWe99Xb4SR5Y/tekVMEVJbEkLyDqVqQpL4P0wqkT
|
64
|
+
EqHzm56VbSXEv9l0D9Mfeof3qPiCiw1P6FtuMgDg6Io1kXWCVjd/9atdD3+5YWIT
|
65
|
+
5DhE+DtY+Ycjaqp5z2vfUitADE0SsISsQPNu8Q83I/BUfPXjuAsgdyfvfyq/IO4G
|
66
|
+
UCULQlcaRcqiZXHhv13xeW9mPSIoudmTAgMBAAGjHjAcMBoGA1UdEQQTMBGCCWxv
|
67
|
+
Y2FsaG9zdIcEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEAii1ko5IwMYy4UI0gnyTp
|
68
|
+
Yo+Y5GtLdTuQ+1GzZXmoX6z8V/HKNHJrBzeC0LiJpG3rSi7FfPbrv0CEXVYMd8h5
|
69
|
+
9ihshlCtC9SZWOzas63gVZO2vi9KKd1M9EGFQVm6Pwo9zsVmxkHGsJT1+fnp/4XE
|
70
|
+
3/c2M36A/LaJzNhyyC+uSYDHZcLsWzHB7dp2OZK/y9mK70R8o+Ou2xcZTX5O5WEJ
|
71
|
+
vBi4xAm3RtgP+W/YYOzspVEopwaDvV05dqomzLHQrPStiEANi3MyYqheRxKZbKFq
|
72
|
+
JaP0YkVeiTbUF+3kVM8damcZZ+tOZIN7W2fkpOUmHQ5WT3+3MhlEhf66rljU4+2l
|
73
|
+
cQ==
|
74
|
+
-----END CERTIFICATE-----
|
75
|
+
-----BEGIN RSA PRIVATE KEY-----
|
76
|
+
MIIEowIBAAKCAQEAlJpQ+bxoOWjjVB1I2YO3f4xZzVSNuq8T7yWlncTWCvQQxO7n
|
77
|
+
tWCBg18/iL1j1zlojSvWhaj2Sm5SbPEDcacuL+KAasNalHpwLF+h6hfl21QkddM6
|
78
|
+
jYMilnYhn7VR/7hNM7hsObtomHFQtUFnvfV2+EkeWP7XpFTBFSWxJC8g6lakKS+D
|
79
|
+
9MKpExKh85uelW0lxL/ZdA/TH3qH96j4gosNT+hbbjIA4OiKNZF1glY3f/WrXQ9/
|
80
|
+
uWFiE+Q4RPg7WPmHI2qqec9r31IrQAxNErCErEDzbvEPNyPwVHz147gLIHcn738q
|
81
|
+
vyDuBlAlC0JXGkXKomVx4b9d8XlvZj0iKLnZkwIDAQABAoIBAQCSQhwG4KgYMSLl
|
82
|
+
q/kClQBrGkFctabVIfJVw1DxKkWc/EDxA06tFvIB0iJfPEBjGY7Mu2Plo7nc4h5g
|
83
|
+
OQqxtuDfomfQLLwfPS7gjbN4CtNh/rvv99k+ZN4LBvPrE/RD4yqhCBgE7m5w876C
|
84
|
+
13/61/ijQJwM7a5igESVwsZJndUgrmg5m358QaMCi11upkhk3MnYK93P4S3RTaBs
|
85
|
+
pzxjSAbgMJ7vD7NUSe1oXKMBNNMgLbQumOp00q8tsZAOToSGYOQI69q3pONRaB+e
|
86
|
+
rrdu7qyDUBQHgZVB+bahtYmpHa0IxVOqAsZqfXNyPDgPRkRDkaoR8pTHbKX6a+a9
|
87
|
+
7Gr3ISe5AoGBAOAU94g04TBypSeiufE+4cB5+rXjmYIlTMs0x6KHunZr0XpRlMPv
|
88
|
+
y4upZQ+O4eo5rrEc0nAaHP/XvNfcogYzyy4qg7DrGl2Px4+iuoGvj5o/0wILZ2Hy
|
89
|
+
ZnWlmJiMctn9Z+MUhMNfLxjEzSly3Y+nZkMYLzNoIgdcqk9jjnw2d3lvAoGBAKnF
|
90
|
+
CsY7LNySixPHHAfCQt3rkEEvPQMMPStNp6ct84StYJyCGyOUyjLBjcBrq4/tOc/D
|
91
|
+
fpoJDBUMUJj9yrVp3he3x00cXAoneX2ED4jnNMMPm84blr02hSCwU/1ldyKDm34/
|
92
|
+
OXlym0UF0nYB2f3hrrwBTic5y2L90PdGfBUD5GgdAoGAcO2gIeCkbEoauXLkypOq
|
93
|
+
KdpPY0MkpdYucWpUAbDtY6jKlR5wHp7GscfYypJzgBs50sB3vU8rtjP/U7o5XW7U
|
94
|
+
wptiatLRIr3HELgtzhWwBUiNCsa8fzwuLrQZxydg6kMvC93XWq6piY4E5xKgXjk6
|
95
|
+
7C1P/FRKcfNdUU0XDbpVU7kCgYBWsbu1zSQ0o1UITYZf4/D3mMK6tt/GParDAU3b
|
96
|
+
DpkrqMoMQliPi/zRfIvhtloPDoqWMXPmPzZ/TSGfbwLkL2Lt47iQBSpvOQdOdHDm
|
97
|
+
bYNBFShwUSBiEYRcVA8f+H+lDWYLS0gTX9Ywoi9+eaWTg3sSoOwDFf1p2MmsbL8S
|
98
|
+
kEFEdQKBgCmc/NESy29MO3j8tH63UbdmD7BeHA36KNmRFzosE9O62eM5xcWsUeE0
|
99
|
+
Xd1vC0V8R9J4sF7ZcwfI9q/XW5I6wW4aKWlwCa1yx7A39Ea9UjiASmY7+hx3vn0z
|
100
|
+
4XAfT1HvR2ohvZYmhm1HAuYWuUvphquFrOXCxuycAvgcaXQBKR0L
|
101
|
+
-----END RSA PRIVATE KEY-----
|
@@ -1,3 +1,77 @@
|
|
1
|
+
Certificate:
|
2
|
+
Data:
|
3
|
+
Version: 3 (0x2)
|
4
|
+
Serial Number: 210471 (0x33627)
|
5
|
+
Signature Algorithm: sha256WithRSAEncryption
|
6
|
+
Issuer: CN = Ruby Driver CA, OU = Drivers, O = MongoDB, L = New York City, ST = New York, C = US
|
7
|
+
Validity
|
8
|
+
Not Before: Feb 14 20:57:50 2019 GMT
|
9
|
+
Not After : Feb 14 20:57:50 2039 GMT
|
10
|
+
Subject: CN = localhost, OU = Drivers, O = MongoDB, L = New York City, ST = New York, C = US
|
11
|
+
Subject Public Key Info:
|
12
|
+
Public Key Algorithm: rsaEncryption
|
13
|
+
RSA Public-Key: (2048 bit)
|
14
|
+
Modulus:
|
15
|
+
00:d3:29:70:81:e1:41:92:c0:cc:9b:92:0c:a9:17:
|
16
|
+
02:95:2e:55:0d:80:f3:2e:5d:27:24:db:4f:a6:6a:
|
17
|
+
a9:ce:66:bd:4e:7c:eb:01:04:28:68:11:40:39:0e:
|
18
|
+
ff:67:ba:4c:fe:05:7f:cb:e1:37:33:36:1e:a4:ee:
|
19
|
+
62:02:6b:a6:d1:b3:24:de:a5:1f:34:1c:b2:f1:c8:
|
20
|
+
04:09:09:fe:28:e0:23:ef:7d:47:1b:55:b5:ce:41:
|
21
|
+
0d:4a:55:3c:65:19:f1:c5:56:69:d3:17:1a:cc:43:
|
22
|
+
26:23:22:d3:f8:0c:85:21:9b:6e:fd:9e:bb:b1:19:
|
23
|
+
db:d8:10:74:7b:0f:f2:c6:b3:0a:d0:83:c6:48:c3:
|
24
|
+
99:71:f8:49:cf:f3:99:5b:eb:a1:c0:e9:6c:e8:a6:
|
25
|
+
84:ac:2e:1f:56:c2:1f:02:90:be:5e:ee:b7:b5:7d:
|
26
|
+
9b:5f:c2:76:23:c0:d8:8d:1b:52:f7:0d:21:1e:aa:
|
27
|
+
22:08:48:2f:ce:b4:a2:d4:92:fa:58:14:35:77:b2:
|
28
|
+
20:9e:52:b6:32:7b:b0:8a:49:33:83:52:57:ba:8e:
|
29
|
+
d9:12:8a:4d:54:f3:0e:26:c2:8b:c9:28:83:1a:34:
|
30
|
+
a1:a1:ee:b8:47:1e:d4:9d:b4:2e:90:15:c1:ef:a3:
|
31
|
+
c6:9f:7b:2d:37:08:8b:3a:4a:f5:25:58:87:60:7f:
|
32
|
+
d7:ab
|
33
|
+
Exponent: 65537 (0x10001)
|
34
|
+
X509v3 extensions:
|
35
|
+
X509v3 Subject Alternative Name:
|
36
|
+
DNS:localhost, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1
|
37
|
+
Signature Algorithm: sha256WithRSAEncryption
|
38
|
+
83:4c:55:bb:f9:09:c9:db:6e:ca:2b:91:36:78:f9:2e:26:5a:
|
39
|
+
b0:4f:1b:2c:61:45:dc:c8:3b:7c:3d:31:b5:78:01:a1:07:2c:
|
40
|
+
c6:d4:05:d9:61:d2:23:74:89:0c:50:8c:a1:86:94:a9:95:4c:
|
41
|
+
0e:01:3d:60:3e:5a:79:24:09:41:80:63:59:d4:b1:85:bf:2e:
|
42
|
+
c3:f0:e8:40:b4:56:01:1f:4b:79:69:f1:54:f9:97:b9:46:b5:
|
43
|
+
6f:d1:56:a0:f1:de:5f:7e:03:61:53:ff:6a:fc:b3:d6:ea:ab:
|
44
|
+
80:1c:24:89:a1:64:41:62:53:50:f1:74:02:36:04:22:37:8a:
|
45
|
+
d8:10:85:af:6b:3a:00:34:d6:13:7a:2e:de:24:ed:ef:e7:7f:
|
46
|
+
ac:f9:12:70:8e:d7:b2:5b:c1:ab:5a:9d:7d:8a:76:e9:9c:54:
|
47
|
+
4e:6d:ed:41:d5:00:bf:14:b9:d1:1a:d0:42:81:ab:04:1f:84:
|
48
|
+
0d:ba:f8:40:eb:b8:88:40:82:75:2d:9e:94:51:e3:fb:21:b0:
|
49
|
+
9a:55:9e:84:b4:5e:a7:e3:cb:b3:6c:0c:15:56:af:7d:6e:ad:
|
50
|
+
13:90:29:30:c7:ed:68:3f:b3:9e:ae:3c:30:e1:8b:39:3a:41:
|
51
|
+
42:24:34:76:90:49:d6:51:3d:ee:86:85:3d:fb:dd:e1:f2:37:
|
52
|
+
a3:13:c1:e5
|
53
|
+
-----BEGIN CERTIFICATE-----
|
54
|
+
MIIDkjCCAnqgAwIBAgIDAzYnMA0GCSqGSIb3DQEBCwUAMHUxFzAVBgNVBAMTDlJ1
|
55
|
+
YnkgRHJpdmVyIENBMRAwDgYDVQQLEwdEcml2ZXJzMRAwDgYDVQQKEwdNb25nb0RC
|
56
|
+
MRYwFAYDVQQHEw1OZXcgWW9yayBDaXR5MREwDwYDVQQIEwhOZXcgWW9yazELMAkG
|
57
|
+
A1UEBhMCVVMwHhcNMTkwMjE0MjA1NzUwWhcNMzkwMjE0MjA1NzUwWjBwMRIwEAYD
|
58
|
+
VQQDEwlsb2NhbGhvc3QxEDAOBgNVBAsTB0RyaXZlcnMxEDAOBgNVBAoTB01vbmdv
|
59
|
+
REIxFjAUBgNVBAcTDU5ldyBZb3JrIENpdHkxETAPBgNVBAgTCE5ldyBZb3JrMQsw
|
60
|
+
CQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANMpcIHh
|
61
|
+
QZLAzJuSDKkXApUuVQ2A8y5dJyTbT6Zqqc5mvU586wEEKGgRQDkO/2e6TP4Ff8vh
|
62
|
+
NzM2HqTuYgJrptGzJN6lHzQcsvHIBAkJ/ijgI+99RxtVtc5BDUpVPGUZ8cVWadMX
|
63
|
+
GsxDJiMi0/gMhSGbbv2eu7EZ29gQdHsP8sazCtCDxkjDmXH4Sc/zmVvrocDpbOim
|
64
|
+
hKwuH1bCHwKQvl7ut7V9m1/CdiPA2I0bUvcNIR6qIghIL860otSS+lgUNXeyIJ5S
|
65
|
+
tjJ7sIpJM4NSV7qO2RKKTVTzDibCi8kogxo0oaHuuEce1J20LpAVwe+jxp97LTcI
|
66
|
+
izpK9SVYh2B/16sCAwEAAaMwMC4wLAYDVR0RBCUwI4IJbG9jYWxob3N0hwR/AAAB
|
67
|
+
hxAAAAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4IBAQCDTFW7+QnJ227K
|
68
|
+
K5E2ePkuJlqwTxssYUXcyDt8PTG1eAGhByzG1AXZYdIjdIkMUIyhhpSplUwOAT1g
|
69
|
+
Plp5JAlBgGNZ1LGFvy7D8OhAtFYBH0t5afFU+Ze5RrVv0Vag8d5ffgNhU/9q/LPW
|
70
|
+
6quAHCSJoWRBYlNQ8XQCNgQiN4rYEIWvazoANNYTei7eJO3v53+s+RJwjteyW8Gr
|
71
|
+
Wp19inbpnFRObe1B1QC/FLnRGtBCgasEH4QNuvhA67iIQIJ1LZ6UUeP7IbCaVZ6E
|
72
|
+
tF6n48uzbAwVVq99bq0TkCkwx+1oP7Oerjww4Ys5OkFCJDR2kEnWUT3uhoU9+93h
|
73
|
+
8jejE8Hl
|
74
|
+
-----END CERTIFICATE-----
|
1
75
|
-----BEGIN RSA PRIVATE KEY-----
|
2
76
|
MIIEpAIBAAKCAQEA0ylwgeFBksDMm5IMqRcClS5VDYDzLl0nJNtPpmqpzma9Tnzr
|
3
77
|
AQQoaBFAOQ7/Z7pM/gV/y+E3MzYepO5iAmum0bMk3qUfNByy8cgECQn+KOAj731H
|
@@ -25,25 +99,3 @@ vYiXowKBgQDVcwEyiBFY2sdwMQJ8jyHwJxcGzp7M2eDfbBOXhA2vnMM0M2J1PyxR
|
|
25
99
|
VM9cElyyX5/KsdnmIRCa/GpTm5Fuuua9pG3geB2z+Gxq+9wccc/72MQfX1GoYWc8
|
26
100
|
StVxFy3oAncFNiXtgew++P/8ANZiABBXU4aG13iLJotQkXjO2okqBA==
|
27
101
|
-----END RSA PRIVATE KEY-----
|
28
|
-
-----BEGIN CERTIFICATE-----
|
29
|
-
MIIDkjCCAnqgAwIBAgIDAzYnMA0GCSqGSIb3DQEBCwUAMHUxFzAVBgNVBAMTDlJ1
|
30
|
-
YnkgRHJpdmVyIENBMRAwDgYDVQQLEwdEcml2ZXJzMRAwDgYDVQQKEwdNb25nb0RC
|
31
|
-
MRYwFAYDVQQHEw1OZXcgWW9yayBDaXR5MREwDwYDVQQIEwhOZXcgWW9yazELMAkG
|
32
|
-
A1UEBhMCVVMwHhcNMTkwMjE0MjA1NzUwWhcNMzkwMjE0MjA1NzUwWjBwMRIwEAYD
|
33
|
-
VQQDEwlsb2NhbGhvc3QxEDAOBgNVBAsTB0RyaXZlcnMxEDAOBgNVBAoTB01vbmdv
|
34
|
-
REIxFjAUBgNVBAcTDU5ldyBZb3JrIENpdHkxETAPBgNVBAgTCE5ldyBZb3JrMQsw
|
35
|
-
CQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANMpcIHh
|
36
|
-
QZLAzJuSDKkXApUuVQ2A8y5dJyTbT6Zqqc5mvU586wEEKGgRQDkO/2e6TP4Ff8vh
|
37
|
-
NzM2HqTuYgJrptGzJN6lHzQcsvHIBAkJ/ijgI+99RxtVtc5BDUpVPGUZ8cVWadMX
|
38
|
-
GsxDJiMi0/gMhSGbbv2eu7EZ29gQdHsP8sazCtCDxkjDmXH4Sc/zmVvrocDpbOim
|
39
|
-
hKwuH1bCHwKQvl7ut7V9m1/CdiPA2I0bUvcNIR6qIghIL860otSS+lgUNXeyIJ5S
|
40
|
-
tjJ7sIpJM4NSV7qO2RKKTVTzDibCi8kogxo0oaHuuEce1J20LpAVwe+jxp97LTcI
|
41
|
-
izpK9SVYh2B/16sCAwEAAaMwMC4wLAYDVR0RBCUwI4IJbG9jYWxob3N0hwR/AAAB
|
42
|
-
hxAAAAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4IBAQCDTFW7+QnJ227K
|
43
|
-
K5E2ePkuJlqwTxssYUXcyDt8PTG1eAGhByzG1AXZYdIjdIkMUIyhhpSplUwOAT1g
|
44
|
-
Plp5JAlBgGNZ1LGFvy7D8OhAtFYBH0t5afFU+Ze5RrVv0Vag8d5ffgNhU/9q/LPW
|
45
|
-
6quAHCSJoWRBYlNQ8XQCNgQiN4rYEIWvazoANNYTei7eJO3v53+s+RJwjteyW8Gr
|
46
|
-
Wp19inbpnFRObe1B1QC/FLnRGtBCgasEH4QNuvhA67iIQIJ1LZ6UUeP7IbCaVZ6E
|
47
|
-
tF6n48uzbAwVVq99bq0TkCkwx+1oP7Oerjww4Ys5OkFCJDR2kEnWUT3uhoU9+93h
|
48
|
-
8jejE8Hl
|
49
|
-
-----END CERTIFICATE-----
|
data/spec/support/constraints.rb
CHANGED
@@ -72,7 +72,7 @@ module Constraints
|
|
72
72
|
require_topology :replica_set
|
73
73
|
end
|
74
74
|
|
75
|
-
def
|
75
|
+
def require_tls
|
76
76
|
before do
|
77
77
|
unless SpecConfig.instance.ssl?
|
78
78
|
skip "SSL not enabled"
|
@@ -80,7 +80,7 @@ module Constraints
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
-
def
|
83
|
+
def require_no_tls
|
84
84
|
before do
|
85
85
|
if SpecConfig.instance.ssl?
|
86
86
|
skip "SSL enabled"
|
@@ -89,11 +89,7 @@ module Constraints
|
|
89
89
|
end
|
90
90
|
|
91
91
|
def require_local_tls
|
92
|
-
|
93
|
-
unless SpecConfig.instance.ssl? && !SpecConfig.instance.ci?
|
94
|
-
skip 'Not running locally with TLS enabled'
|
95
|
-
end
|
96
|
-
end
|
92
|
+
require_tls
|
97
93
|
end
|
98
94
|
|
99
95
|
def require_no_retry_writes
|
data/spec/support/spec_config.rb
CHANGED
@@ -4,6 +4,7 @@ class SpecConfig
|
|
4
4
|
include Singleton
|
5
5
|
|
6
6
|
def initialize
|
7
|
+
@uri_options = {}
|
7
8
|
if ENV['MONGODB_URI']
|
8
9
|
@mongodb_uri = Mongo::URI.new(ENV['MONGODB_URI'])
|
9
10
|
@uri_options = Mongo::Options::Mapper.transform_keys_to_symbols(@mongodb_uri.uri_options)
|
@@ -37,6 +38,14 @@ class SpecConfig
|
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
41
|
+
@uri_tls_options = {}
|
42
|
+
@uri_options.each do |k, v|
|
43
|
+
k = k.to_s.downcase
|
44
|
+
if k.start_with?('ssl')
|
45
|
+
@uri_tls_options[k] = v
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
40
49
|
if @addresses.nil?
|
41
50
|
# Discover deployment topology
|
42
51
|
if @mongodb_uri
|
@@ -188,33 +197,91 @@ EOT
|
|
188
197
|
end
|
189
198
|
|
190
199
|
def ssl_certs_dir
|
191
|
-
"#{spec_root}/support/certificates"
|
200
|
+
Pathname.new("#{spec_root}/support/certificates")
|
192
201
|
end
|
193
202
|
|
194
|
-
|
195
|
-
|
196
|
-
|
203
|
+
# TLS certificates & keys
|
204
|
+
|
205
|
+
def local_client_key_path
|
206
|
+
"#{ssl_certs_dir}/client.key"
|
207
|
+
end
|
208
|
+
|
209
|
+
def client_key_path
|
210
|
+
if drivers_tools? && ENV['DRIVER_TOOLS_CLIENT_KEY_PEM']
|
211
|
+
ENV['DRIVER_TOOLS_CLIENT_KEY_PEM']
|
197
212
|
else
|
198
|
-
|
213
|
+
local_client_key_path
|
199
214
|
end
|
200
215
|
end
|
201
216
|
|
202
|
-
def
|
203
|
-
|
204
|
-
|
217
|
+
def local_client_cert_path
|
218
|
+
"#{ssl_certs_dir}/client.crt"
|
219
|
+
end
|
220
|
+
|
221
|
+
def client_cert_path
|
222
|
+
if drivers_tools? && ENV['DRIVER_TOOLS_CLIENT_CERT_PEM']
|
223
|
+
ENV['DRIVER_TOOLS_CLIENT_CERT_PEM']
|
205
224
|
else
|
206
|
-
|
225
|
+
local_client_cert_path
|
207
226
|
end
|
208
227
|
end
|
209
228
|
|
210
|
-
def
|
211
|
-
|
229
|
+
def local_client_pem_path
|
230
|
+
"#{ssl_certs_dir}/client.pem"
|
231
|
+
end
|
232
|
+
|
233
|
+
def client_pem_path
|
234
|
+
if drivers_tools? && ENV['DRIVER_TOOLS_CLIENT_CERT_KEY_PEM']
|
212
235
|
ENV['DRIVER_TOOLS_CLIENT_CERT_KEY_PEM']
|
213
236
|
else
|
214
|
-
|
237
|
+
local_client_pem_path
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
def second_level_cert_path
|
242
|
+
"#{ssl_certs_dir}/client-second-level.crt"
|
243
|
+
end
|
244
|
+
|
245
|
+
def second_level_key_path
|
246
|
+
"#{ssl_certs_dir}/client-second-level.key"
|
247
|
+
end
|
248
|
+
|
249
|
+
def second_level_cert_bundle_path
|
250
|
+
"#{ssl_certs_dir}/client-second-level-bundle.pem"
|
251
|
+
end
|
252
|
+
|
253
|
+
def local_client_encrypted_key_path
|
254
|
+
"#{ssl_certs_dir}/client-encrypted.key"
|
255
|
+
end
|
256
|
+
|
257
|
+
def client_encrypted_key_path
|
258
|
+
if drivers_tools? && ENV['DRIVER_TOOLS_CLIENT_KEY_ENCRYPTED_PEM']
|
259
|
+
ENV['DRIVER_TOOLS_CLIENT_KEY_ENCRYPTED_PEM']
|
260
|
+
else
|
261
|
+
local_client_encrypted_key_path
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
def client_encrypted_key_passphrase
|
266
|
+
'passphrase'
|
267
|
+
end
|
268
|
+
|
269
|
+
def local_ca_cert_path
|
270
|
+
"#{ssl_certs_dir}/ca.crt"
|
271
|
+
end
|
272
|
+
|
273
|
+
def ca_cert_path
|
274
|
+
if drivers_tools? && ENV['DRIVER_TOOLS_CA_PEM']
|
275
|
+
ENV['DRIVER_TOOLS_CA_PEM']
|
276
|
+
else
|
277
|
+
local_ca_cert_path
|
215
278
|
end
|
216
279
|
end
|
217
280
|
|
281
|
+
def multi_ca_path
|
282
|
+
"#{ssl_certs_dir}/multi-ca.crt"
|
283
|
+
end
|
284
|
+
|
218
285
|
# The default test database for all specs.
|
219
286
|
def test_db
|
220
287
|
'ruby-driver'.freeze
|
@@ -234,10 +301,11 @@ EOT
|
|
234
301
|
if ssl?
|
235
302
|
{
|
236
303
|
ssl: true,
|
237
|
-
ssl_verify:
|
238
|
-
ssl_cert:
|
239
|
-
ssl_key:
|
240
|
-
|
304
|
+
ssl_verify: true,
|
305
|
+
ssl_cert: client_cert_path,
|
306
|
+
ssl_key: client_key_path,
|
307
|
+
ssl_ca_cert: ca_cert_path,
|
308
|
+
}.merge(@uri_tls_options)
|
241
309
|
else
|
242
310
|
{}
|
243
311
|
end
|