mongo 2.7.0 → 2.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/README.md +39 -14
  5. data/Rakefile +1 -0
  6. data/lib/mongo/auth.rb +4 -1
  7. data/lib/mongo/client.rb +4 -3
  8. data/lib/mongo/cluster.rb +1 -1
  9. data/lib/mongo/collection/view/readable.rb +5 -2
  10. data/lib/mongo/database.rb +1 -0
  11. data/lib/mongo/error/invalid_server_preference.rb +1 -0
  12. data/lib/mongo/error/operation_failure.rb +10 -0
  13. data/lib/mongo/error/parser.rb +10 -0
  14. data/lib/mongo/event.rb +1 -2
  15. data/lib/mongo/operation/result.rb +4 -1
  16. data/lib/mongo/operation/shared/executable_transaction_label.rb +3 -1
  17. data/lib/mongo/operation/shared/sessions_supported.rb +1 -1
  18. data/lib/mongo/protocol/msg.rb +1 -1
  19. data/lib/mongo/protocol/query.rb +2 -2
  20. data/lib/mongo/retryable.rb +20 -6
  21. data/lib/mongo/server.rb +6 -0
  22. data/lib/mongo/server/connection.rb +4 -4
  23. data/lib/mongo/server/monitor/connection.rb +9 -5
  24. data/lib/mongo/server_selector/selectable.rb +86 -32
  25. data/lib/mongo/session.rb +98 -15
  26. data/lib/mongo/version.rb +1 -1
  27. data/spec/README.md +85 -0
  28. data/spec/integration/bulk_insert_spec.rb +1 -1
  29. data/spec/integration/change_stream_examples_spec.rb +3 -1
  30. data/spec/integration/change_stream_spec.rb +10 -14
  31. data/spec/integration/client_construction_spec.rb +1 -0
  32. data/spec/integration/command_monitoring_spec.rb +37 -1
  33. data/spec/integration/command_spec.rb +141 -0
  34. data/spec/integration/connection_spec.rb +4 -2
  35. data/spec/integration/cursor_reaping_spec.rb +1 -1
  36. data/spec/integration/docs_examples_spec.rb +1 -1
  37. data/spec/integration/retryable_writes_spec.rb +33 -42
  38. data/spec/integration/server_description_spec.rb +3 -3
  39. data/spec/integration/server_selector_spec.rb +79 -0
  40. data/spec/lite_spec_helper.rb +4 -2
  41. data/spec/mongo/address_spec.rb +8 -0
  42. data/spec/mongo/auth/cr_spec.rb +5 -2
  43. data/spec/mongo/auth/invalid_mechanism_spec.rb +11 -0
  44. data/spec/mongo/auth/scram/conversation_spec.rb +3 -2
  45. data/spec/mongo/auth/scram/negotiation_spec.rb +1 -2
  46. data/spec/mongo/auth/scram_spec.rb +11 -6
  47. data/spec/mongo/auth/user/view_spec.rb +13 -6
  48. data/spec/mongo/bulk_write_spec.rb +81 -104
  49. data/spec/mongo/client_construction_spec.rb +18 -7
  50. data/spec/mongo/client_spec.rb +11 -7
  51. data/spec/mongo/cluster_spec.rb +30 -1
  52. data/spec/mongo/collection/view/aggregation_spec.rb +18 -10
  53. data/spec/mongo/collection/view/change_stream_spec.rb +28 -8
  54. data/spec/mongo/collection/view/map_reduce_spec.rb +24 -10
  55. data/spec/mongo/collection/view/readable_spec.rb +37 -19
  56. data/spec/mongo/collection/view/writable_spec.rb +64 -32
  57. data/spec/mongo/collection/view_spec.rb +4 -2
  58. data/spec/mongo/collection_spec.rb +163 -73
  59. data/spec/mongo/cursor_spec.rb +5 -2
  60. data/spec/mongo/database_spec.rb +41 -19
  61. data/spec/mongo/error/no_server_available_spec.rb +1 -1
  62. data/spec/mongo/error/parser_spec.rb +29 -0
  63. data/spec/mongo/grid/stream/write_spec.rb +2 -1
  64. data/spec/mongo/index/view_spec.rb +42 -24
  65. data/spec/mongo/operation/delete/op_msg_spec.rb +11 -7
  66. data/spec/mongo/operation/insert/op_msg_spec.rb +10 -6
  67. data/spec/mongo/operation/update/op_msg_spec.rb +10 -6
  68. data/spec/mongo/protocol/compressed_spec.rb +1 -1
  69. data/spec/mongo/protocol/msg_spec.rb +1 -1
  70. data/spec/mongo/server/app_metadata_spec.rb +2 -1
  71. data/spec/mongo/server/connection_auth_spec.rb +1 -1
  72. data/spec/mongo/server/monitor/connection_spec.rb +42 -0
  73. data/spec/mongo/server_selector_spec.rb +17 -0
  74. data/spec/mongo/server_spec.rb +110 -0
  75. data/spec/mongo/session/session_pool_spec.rb +1 -1
  76. data/spec/mongo/session_spec.rb +1 -1
  77. data/spec/mongo/session_transaction_spec.rb +162 -1
  78. data/spec/mongo/socket/ssl_spec.rb +14 -7
  79. data/spec/mongo/uri/srv_protocol_spec.rb +41 -34
  80. data/spec/spec_helper.rb +3 -191
  81. data/spec/spec_tests/change_streams_spec.rb +3 -6
  82. data/spec/spec_tests/data/transactions/abort.yml +3 -1
  83. data/spec/spec_tests/data/transactions/commit.yml +4 -3
  84. data/spec/spec_tests/data/transactions/error-labels.yml +17 -13
  85. data/spec/spec_tests/data/transactions/read-concern.yml +611 -0
  86. data/spec/spec_tests/data/transactions/retryable-commit.yml +126 -21
  87. data/spec/spec_tests/data/transactions_api/callback-aborts.yml +42 -39
  88. data/spec/spec_tests/data/transactions_api/callback-commits.yml +52 -50
  89. data/spec/spec_tests/data/transactions_api/callback-retry.yml +33 -31
  90. data/spec/spec_tests/data/transactions_api/commit-retry.yml +42 -39
  91. data/spec/spec_tests/data/transactions_api/commit-transienttransactionerror-4.2.yml +13 -12
  92. data/spec/spec_tests/data/transactions_api/commit-transienttransactionerror.yml +15 -26
  93. data/spec/spec_tests/data/transactions_api/commit-writeconcernerror.yml +25 -33
  94. data/spec/spec_tests/data/transactions_api/commit.yml +44 -42
  95. data/spec/spec_tests/data/transactions_api/transaction-options.yml +25 -23
  96. data/spec/spec_tests/max_staleness_spec.rb +2 -0
  97. data/spec/spec_tests/retryable_writes_spec.rb +2 -6
  98. data/spec/spec_tests/sdam_spec.rb +2 -0
  99. data/spec/spec_tests/server_selection_spec.rb +3 -0
  100. data/spec/spec_tests/transactions_api_spec.rb +7 -1
  101. data/spec/spec_tests/transactions_spec.rb +6 -0
  102. data/spec/spec_tests/uri_options_spec.rb +4 -26
  103. data/spec/support/certificates/ca.pem +21 -16
  104. data/spec/support/certificates/client.pem +90 -90
  105. data/spec/support/certificates/client_cert.pem +21 -20
  106. data/spec/support/certificates/client_key.pem +27 -28
  107. data/spec/support/certificates/client_key_encrypted.pem +26 -26
  108. data/spec/support/certificates/crl.pem +10 -8
  109. data/spec/support/certificates/crl_client_revoked.pem +11 -10
  110. data/spec/support/certificates/server.pem +48 -33
  111. data/spec/support/change_streams.rb +12 -32
  112. data/spec/support/client_registry.rb +12 -1
  113. data/spec/support/cluster_config.rb +48 -2
  114. data/spec/support/common_shortcuts.rb +73 -7
  115. data/spec/support/connection_string.rb +0 -3
  116. data/spec/support/constraints.rb +87 -22
  117. data/spec/support/crud.rb +2 -1
  118. data/spec/support/shared/server_selector.rb +0 -28
  119. data/spec/support/shared/session.rb +25 -14
  120. data/spec/support/transactions.rb +4 -8
  121. data/spec/support/transactions/operation.rb +26 -4
  122. data/spec/support/transactions/verifier.rb +5 -2
  123. metadata +496 -488
  124. metadata.gz.sig +5 -2
  125. data/spec/support/certificates/password_protected.pem +0 -51
@@ -10,24 +10,25 @@ tests:
10
10
  -
11
11
  name: withTransaction
12
12
  object: session0
13
- callback:
14
- operations:
15
- -
16
- name: insertOne
17
- object: collection
18
- arguments:
19
- session: session0
20
- document: { _id: 1 }
21
- result:
22
- insertedId: 1
23
- -
24
- name: insertOne
25
- object: collection
26
- arguments:
27
- session: session0
28
- document: { _id: 2 }
29
- result:
30
- insertedId: 2
13
+ arguments:
14
+ callback:
15
+ operations:
16
+ -
17
+ name: insertOne
18
+ object: collection
19
+ arguments:
20
+ session: session0
21
+ document: { _id: 1 }
22
+ result:
23
+ insertedId: 1
24
+ -
25
+ name: insertOne
26
+ object: collection
27
+ arguments:
28
+ session: session0
29
+ document: { _id: 2 }
30
+ result:
31
+ insertedId: 2
31
32
  expectations:
32
33
  -
33
34
  command_started_event:
@@ -89,30 +90,31 @@ tests:
89
90
  -
90
91
  name: withTransaction
91
92
  object: session0
92
- callback:
93
- operations:
94
- -
95
- name: insertOne
96
- object: collection
97
- arguments:
98
- session: session0
99
- document: { _id: 1 }
100
- result:
101
- insertedId: 1
102
- -
103
- name: commitTransaction
104
- object: session0
105
- -
106
- name: startTransaction
107
- object: session0
108
- -
109
- name: insertOne
110
- object: collection
111
- arguments:
112
- session: session0
113
- document: { _id: 2 }
114
- result:
115
- insertedId: 2
93
+ arguments:
94
+ callback:
95
+ operations:
96
+ -
97
+ name: insertOne
98
+ object: collection
99
+ arguments:
100
+ session: session0
101
+ document: { _id: 1 }
102
+ result:
103
+ insertedId: 1
104
+ -
105
+ name: commitTransaction
106
+ object: session0
107
+ -
108
+ name: startTransaction
109
+ object: session0
110
+ -
111
+ name: insertOne
112
+ object: collection
113
+ arguments:
114
+ session: session0
115
+ document: { _id: 2 }
116
+ result:
117
+ insertedId: 2
116
118
  expectations:
117
119
  -
118
120
  command_started_event:
@@ -10,16 +10,17 @@ tests:
10
10
  -
11
11
  name: withTransaction
12
12
  object: session0
13
- callback:
14
- operations:
15
- -
16
- name: insertOne
17
- object: collection
18
- arguments:
19
- session: session0
20
- document: { _id: 1 }
21
- result:
22
- insertedId: 1
13
+ arguments:
14
+ callback:
15
+ operations:
16
+ -
17
+ name: insertOne
18
+ object: collection
19
+ arguments:
20
+ session: session0
21
+ document: { _id: 1 }
22
+ result:
23
+ insertedId: 1
23
24
  expectations:
24
25
  -
25
26
  command_started_event:
@@ -136,19 +137,20 @@ tests:
136
137
  -
137
138
  name: withTransaction
138
139
  object: session0
139
- callback:
140
- operations:
141
- -
142
- name: insertOne
143
- object: collection
144
- arguments:
145
- session: session0
146
- document: { _id: 1 }
147
- result:
148
- insertedId: 1
149
- transactionOptions:
150
- readConcern: { level: snapshot }
151
- writeConcern: { w: 1 }
140
+ arguments:
141
+ callback:
142
+ operations:
143
+ -
144
+ name: insertOne
145
+ object: collection
146
+ arguments:
147
+ session: session0
148
+ document: { _id: 1 }
149
+ result:
150
+ insertedId: 1
151
+ options:
152
+ readConcern: { level: snapshot }
153
+ writeConcern: { w: 1 }
152
154
  expectations:
153
155
  -
154
156
  command_started_event:
@@ -46,6 +46,7 @@ describe 'Max Staleness Spec' do
46
46
 
47
47
  let(:cluster) do
48
48
  double('cluster').tap do |c|
49
+ allow(c).to receive(:connected?).and_return(true)
49
50
  allow(c).to receive(:summary)
50
51
  allow(c).to receive(:topology).and_return(topology)
51
52
  allow(c).to receive(:single?).and_return(topology.single?)
@@ -99,6 +100,7 @@ describe 'Max Staleness Spec' do
99
100
 
100
101
  before do
101
102
  allow(cluster).to receive(:servers).and_return(candidate_servers)
103
+ allow(cluster).to receive(:addresses).and_return(candidate_servers.map(&:address))
102
104
  end
103
105
 
104
106
  context 'when the max staleness is invalid' do
@@ -11,6 +11,8 @@ describe 'Retryable writes spec tests' do
11
11
  spec.tests.each do |test|
12
12
 
13
13
  context(test.description) do
14
+ min_server_fcv '3.6'
15
+ require_topology :replica_set
14
16
 
15
17
  let(:collection) do
16
18
  client[TEST_COLL]
@@ -21,12 +23,6 @@ describe 'Retryable writes spec tests' do
21
23
  end
22
24
 
23
25
  before do
24
- unless sessions_enabled?
25
- skip 'Sessions not enabled'
26
- end
27
- unless replica_set?
28
- skip 'Not in replica set'
29
- end
30
26
  unless spec.server_version_satisfied?(client)
31
27
  skip 'Test cannot be run on this server version'
32
28
  end
@@ -44,6 +44,8 @@ describe 'Server Discovery and Monitoring' do
44
44
  context("Phase: #{index + 1}") do
45
45
 
46
46
  before do
47
+ allow(@client.cluster).to receive(:connected?).and_return(true)
48
+
47
49
  phase.responses.each do |response|
48
50
  server = find_server(@client, response.address)
49
51
  unless server
@@ -37,6 +37,7 @@ describe 'Server Selection' do
37
37
 
38
38
  let(:cluster) do
39
39
  double('cluster').tap do |c|
40
+ allow(c).to receive(:connected?).and_return(true)
40
41
  allow(c).to receive(:summary)
41
42
  allow(c).to receive(:topology).and_return(topology)
42
43
  allow(c).to receive(:single?).and_return(topology.single?)
@@ -81,6 +82,8 @@ describe 'Server Selection' do
81
82
 
82
83
  before do
83
84
  allow(cluster).to receive(:servers).and_return(candidate_servers)
85
+ allow(cluster).to receive(:servers_list).and_return(candidate_servers)
86
+ allow(cluster).to receive(:addresses).and_return(candidate_servers.map(&:address))
84
87
  allow(cluster).to receive(:options).and_return(server_selection_timeout: 0.2)
85
88
  allow(cluster).to receive(:scan!).and_return(true)
86
89
  allow(cluster).to receive(:app_metadata).and_return(app_metadata)
@@ -14,7 +14,13 @@ describe 'Transactions API' do
14
14
  require_transaction_support
15
15
 
16
16
  if spec.min_server_version
17
- min_server_version spec.min_server_version.split('.')[0..1].join('.')
17
+ min_server_fcv spec.min_server_version.split('.')[0..1].join('.')
18
+ end
19
+
20
+ if test_instance.skip_reason
21
+ before do
22
+ skip test_instance.skip_reason
23
+ end
18
24
  end
19
25
 
20
26
  let(:test) { test_factory.call }
@@ -15,6 +15,12 @@ describe 'Transactions' do
15
15
 
16
16
  let(:test) { test_factory.call }
17
17
 
18
+ if test_instance.skip_reason
19
+ before do
20
+ skip test_instance.skip_reason
21
+ end
22
+ end
23
+
18
24
  before(:each) do
19
25
  test.setup_test
20
26
  end
@@ -10,32 +10,10 @@ describe 'Uri Options' do
10
10
  context(spec.description) do
11
11
 
12
12
  before(:all) do
13
-
14
- module Mongo
15
- class Address
16
-
17
- private
18
-
19
- alias :original_create_resolver :create_resolver
20
- def create_resolver(timeout, ssl_options)
21
- family = (host == 'localhost') ? ::Socket::AF_INET : ::Socket::AF_UNSPEC
22
- info = ::Socket.getaddrinfo(host, nil, family, ::Socket::SOCK_STREAM)
23
- FAMILY_MAP[info.first[4]].new(info[3], port, host)
24
- end
25
- end
26
- end
27
- end
28
-
29
- after(:all) do
30
-
31
- module Mongo
32
- # Return the implementations to their originals for the other
33
- # tests in the suite.
34
- class Address
35
- alias :create_resolver :original_create_resolver
36
- remove_method(:original_create_resolver)
37
- end
38
- end
13
+ # Since the tests issue global assertions on Mongo::Logger,
14
+ # we need to close all clients/stop monitoring to avoid monitoring
15
+ # threads warning and interfering with these assertions
16
+ ClientRegistry.instance.close_all_clients
39
17
  end
40
18
 
41
19
  spec.tests.each do |test|
@@ -1,17 +1,22 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIICnTCCAgYCCQD4+RCKzwZr/zANBgkqhkiG9w0BAQUFADCBkjELMAkGA1UEBhMC
3
- VVMxETAPBgNVBAgMCE5ldyBZb3JrMRYwFAYDVQQHDA1OZXcgWW9yayBDaXR5MQ4w
4
- DAYDVQQKDAUxMEdlbjEPMA0GA1UECwwGS2VybmVsMRowGAYDVQQDDBFNeSBDZXJ0
5
- IEF1dGhvcml0eTEbMBkGCSqGSIb3DQEJARYMcm9vdEBsYXphcnVzMB4XDTEzMTEz
6
- MDAyMzU0OVoXDTIzMTEyODAyMzU0OVowgZIxCzAJBgNVBAYTAlVTMREwDwYDVQQI
7
- DAhOZXcgWW9yazEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEOMAwGA1UECgwFMTBH
8
- ZW4xDzANBgNVBAsMBktlcm5lbDEaMBgGA1UEAwwRTXkgQ2VydCBBdXRob3JpdHkx
9
- GzAZBgkqhkiG9w0BCQEWDHJvb3RAbGF6YXJ1czCBnzANBgkqhkiG9w0BAQEFAAOB
10
- jQAwgYkCgYEA1xymeY+U/evUuQvxpun9moe4GopN80c1ptmaAHM/1Onwaq54Wt27
11
- nl1wUVme3dh4DdWviYY7mJ333HVEnp/QhVcT4kQhICZqdgPKPdCseQW3H+8x6Gwz
12
- hrNRBdz0NkSoFxDlIymfy2Q2xoQpbCGAg+EnRYUTKlHMXNpUDLFhGjcCAwEAATAN
13
- BgkqhkiG9w0BAQUFAAOBgQDRQB3c/9osTexEzMPHyMGTzG5nGwy8Wv77GgW3BETM
14
- hECoGqueXLa5ZgvealJrnMHNKdj6vrCGgBDzE0K0VdXc4dLtLmx3DRntDOAWKJdB
15
- 2XPMvdC7Ec//Fwep/9emz0gDiJrTiEpL4p74+h+sp4Xy8cBokQ3Ss5S9NmnPXT7E
16
- qQ==
17
- -----END CERTIFICATE-----
2
+ MIIDkzCCAnugAwIBAgIDAzYnMA0GCSqGSIb3DQEBCwUAMHUxFzAVBgNVBAMTDlJ1
3
+ YnkgRHJpdmVyIENBMRAwDgYDVQQLEwdEcml2ZXJzMRAwDgYDVQQKEwdNb25nb0RC
4
+ MRYwFAYDVQQHEw1OZXcgWW9yayBDaXR5MREwDwYDVQQIEwhOZXcgWW9yazELMAkG
5
+ A1UEBhMCVVMwHhcNMTkwMjE0MjA1NzUwWhcNMzkwMjE0MjA1NzUwWjB1MRcwFQYD
6
+ VQQDEw5SdWJ5IERyaXZlciBDQTEQMA4GA1UECxMHRHJpdmVyczEQMA4GA1UEChMH
7
+ TW9uZ29EQjEWMBQGA1UEBxMNTmV3IFlvcmsgQ2l0eTERMA8GA1UECBMITmV3IFlv
8
+ cmsxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
9
+ lnEX6KqH3BaOy5BMLGER0R2duAR1GIrxQTcuBubLZywW8yT0UwIzBhxu536DFESk
10
+ Q7Zd8U1o54/+TPfKAeXSwSulkyzNEljD4W+yMcYFRFuZYZn1BtCjrd6PonOhRpQw
11
+ 5/dLXfs0dn6HpSaJDvmK5xJb/xFx5N2HLeCpJqMbfcQAuBE6BfcA9juAfRsMozhC
12
+ C6IX5ErIAAnIoK3QcxJmYD3OQQdWEeUGmq+b7ClltlaxKrOyLRDEdQXrHcvEtC2P
13
+ 6Qg6bWfjCoFq1ZedoAjycBydnkvjm0JNApGTuL/n6Wl+76v8pmppNTfu2bdvxRI4
14
+ k08J6oT0Id9aUOCJyNqU4QIDAQABoywwKjAMBgNVHRMEBTADAQH/MBoGA1UdEQQT
15
+ MBGCCWxvY2FsaG9zdIcEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEAQNkZgtJU9evV
16
+ +eGFsTjr02DCvrd8ClmQDwAwCcl+4YN9ztLWKOghPk7q7kfricDkE3JR0jxIBgaG
17
+ UVXaJA+G+h8n1phY7xM/jytXBa3RQJmPNS33E54ZpRojXikouMvkfHovgX8fci8s
18
+ 0qXM8f6DRTCNI9BCpfCd6QK1Cf8Fcq8A6os4QYg6PHVui17zsDDT+/9vTmhiKjBr
19
+ PgY/oqYCkfH1XTHn9PAHnaYfBPojfx7T0zDRPVVG2C/aS/xN0pMKUb945Ac/FXd6
20
+ KyCBVJqfIQmGR4GF3ORQNzQYsEORKqKcl/6iGgKRbXGzZeHHABfVJtlpFzvs4V93
21
+ 6BlLo4wq4A==
22
+ -----END CERTIFICATE-----
@@ -1,101 +1,101 @@
1
1
  Certificate:
2
2
  Data:
3
3
  Version: 3 (0x2)
4
- Serial Number: 7 (0x7)
5
- Signature Algorithm: sha1WithRSAEncryption
6
- Issuer: C=US, ST=New York, L=New York City, O=10Gen, OU=Kernel, CN=My Cert Authority/emailAddress=root@lazarus
4
+ Serial Number: 78625 (0x13321)
5
+ Signature Algorithm: sha256WithRSAEncryption
6
+ Issuer: CN = Ruby Driver CA, OU = Drivers, O = MongoDB, L = New York City, ST = New York, C = US
7
7
  Validity
8
- Not Before: Aug 23 14:55:32 2013 GMT
9
- Not After : Jan 7 14:55:32 2041 GMT
10
- Subject: C=US, ST=New York, L=New York City, O=10Gen, OU=kerneluser, CN=client
8
+ Not Before: Feb 14 20:57:58 2019 GMT
9
+ Not After : Feb 14 20:57:58 2039 GMT
10
+ Subject: CN = localhost, OU = Drivers, O = MongoDB, L = New York City, ST = New York, C = US
11
11
  Subject Public Key Info:
12
12
  Public Key Algorithm: rsaEncryption
13
- Public-Key: (2048 bit)
13
+ RSA Public-Key: (2048 bit)
14
14
  Modulus:
15
- 00:ba:16:42:d4:8b:3d:5e:8a:67:9e:a7:c0:cd:4a:
16
- 9c:9c:fd:95:b9:83:bf:f4:cf:03:8c:2e:db:a9:c1:
17
- 35:58:80:f6:e2:e9:87:28:84:e3:d0:9b:68:60:51:
18
- 0e:42:84:d8:6f:e8:34:cc:18:97:79:d3:8d:d8:2f:
19
- 23:11:25:6f:69:7a:38:bb:8c:b2:29:e9:91:be:79:
20
- 8c:cc:1b:56:98:98:d3:83:2a:c5:f9:9c:86:0c:2c:
21
- 24:0e:5c:46:3b:a9:95:44:6c:c5:e0:7c:9d:03:ae:
22
- 0d:23:99:49:a4:48:dd:0e:35:a2:e5:b4:8b:86:bd:
23
- c0:c8:ce:d5:ac:c4:36:f3:9e:5f:17:00:23:8d:53:
24
- a1:43:1b:a3:61:96:36:80:4d:35:50:b5:8b:69:31:
25
- 39:b4:63:8b:96:59:5c:d1:ea:92:eb:eb:fa:1b:35:
26
- 64:44:b3:f6:f3:a6:9d:49:3a:59:e5:e1:c2:cb:98:
27
- be:29:b3:22:dd:33:97:d7:50:4f:db:c2:58:64:18:
28
- b5:8c:3c:6b:2d:21:f6:bd:8d:e5:d2:da:8d:79:fe:
29
- a7:80:75:a8:15:b9:ee:79:7f:01:31:1d:e5:e7:15:
30
- 76:53:65:f6:fe:f0:93:7d:20:3d:cc:ff:9b:ca:b2:
31
- 50:2c:1b:3a:69:d5:e6:70:cf:ac:be:7e:5c:33:c4:
32
- 6e:a7
15
+ 00:96:2d:53:a9:0d:f6:fe:3c:34:5c:60:87:56:c8:
16
+ 69:da:85:e7:10:96:c6:39:6e:5c:09:f3:42:e0:a7:
17
+ bb:38:37:ef:a6:63:6c:28:8b:1d:1a:52:00:52:19:
18
+ 94:63:f9:58:4e:9c:d2:ca:ab:2e:20:66:c3:7d:fb:
19
+ a4:52:e6:7c:5b:bf:b4:06:1f:e4:9e:6b:77:f1:38:
20
+ 14:b2:56:af:77:dd:23:99:1c:b8:07:e5:79:c6:b9:
21
+ 10:18:ea:47:0c:b5:df:d0:a6:15:14:09:37:51:9e:
22
+ f2:7c:2b:66:f8:e9:59:f6:51:e9:50:e2:11:52:d9:
23
+ cf:00:0c:9e:15:55:51:e1:d8:96:9d:15:54:9c:78:
24
+ db:5f:2e:f2:91:5f:55:3c:3f:18:6f:32:16:82:76:
25
+ 9e:83:6c:25:22:b1:27:70:69:cd:aa:a1:52:64:60:
26
+ e5:b3:24:ee:29:ef:2c:ad:de:09:53:02:08:39:10:
27
+ 4f:4a:fc:8b:21:18:ce:f1:fc:54:0c:7f:a6:ec:b2:
28
+ b1:d6:c7:61:bb:bb:3f:7e:31:80:f1:39:f8:4d:e8:
29
+ c2:45:11:e1:ac:90:97:e5:4a:58:a6:07:1b:7f:61:
30
+ c4:aa:f2:66:66:06:b2:c7:1b:71:df:dc:3f:53:fe:
31
+ 85:e4:8b:97:11:c2:d0:7e:10:35:2b:a3:e7:7d:c7:
32
+ 6b:f7
33
33
  Exponent: 65537 (0x10001)
34
34
  X509v3 extensions:
35
- X509v3 Basic Constraints:
36
- CA:FALSE
37
- Netscape Comment:
38
- OpenSSL Generated Certificate
39
- X509v3 Subject Key Identifier:
40
- 4A:8B:EE:22:42:E6:F8:62:4C:86:38:8D:C5:78:95:98:C1:10:05:7C
41
- X509v3 Authority Key Identifier:
42
- keyid:07:41:19:3A:9F:7E:C5:B7:22:4E:B7:BC:D5:DF:E4:FC:09:B8:64:16
43
-
44
- Signature Algorithm: sha1WithRSAEncryption
45
- 13:13:a8:f0:de:78:c6:b1:e0:85:cc:27:e6:04:28:44:93:1d:
46
- f1:ff:5e:81:69:33:1f:f3:76:e0:49:ca:d9:ad:aa:db:f5:a5:
47
- f8:a6:50:bb:a1:a7:40:14:e4:2f:8d:b8:21:7f:35:04:60:db:
48
- af:f0:9e:dd:a1:ca:0b:7f:03:2e:2f:19:1e:32:6e:1e:2d:87:
49
- 68:e3:37:47:a8:5b:93:d1:88:41:73:da:88:21:59:27:d4:35:
50
- 1c:6a:27:b5:c0:c6:17:ba:f3:87:c8:e1:f4:8f:43:12:bc:fa:
51
- 8d:90:d5:86:83:df:51:a5:c9:e0:92:f0:66:d0:37:61:6f:85:
52
- 24:18
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
+ 48:41:5e:7b:fd:f5:bf:32:52:cd:bc:f8:71:7e:0d:0d:22:05:
39
+ 7d:a5:11:ed:86:ac:02:9c:c3:e1:f4:f4:36:d2:48:8d:a4:5b:
40
+ 4a:d1:76:8f:25:17:72:07:99:49:2f:09:f0:25:f9:0a:a7:06:
41
+ 99:ab:e8:f7:48:c7:4c:f1:a1:4e:f4:64:3a:d8:25:e4:76:30:
42
+ 2a:f6:b8:71:ee:05:cd:b2:7a:7f:e6:c7:7a:c3:af:f1:d1:16:
43
+ 73:a5:bf:db:14:71:c4:d8:f7:e7:ce:82:48:2f:ce:e5:fd:8f:
44
+ 89:4b:a6:0c:1e:6b:42:9d:64:73:7e:37:00:07:b5:e6:b9:b9:
45
+ 89:38:04:d6:67:dd:e1:26:98:e4:49:06:8e:2c:d3:ee:c1:ee:
46
+ 09:b9:95:3a:bd:6a:61:c2:d2:19:6c:e5:86:49:63:ae:e4:93:
47
+ 92:01:48:d2:32:94:2c:62:fd:04:2e:7f:a2:26:85:dd:99:78:
48
+ da:9b:0c:84:19:29:b2:c6:55:e1:4d:97:d5:9a:63:e0:8d:f8:
49
+ 67:4c:3f:0e:6b:67:13:58:ba:28:ec:40:e6:65:c1:18:23:ae:
50
+ 16:1c:fb:7b:d9:bc:c2:84:71:fb:f5:a8:71:cc:a5:2f:28:3b:
51
+ 45:97:d6:15:9e:e8:44:ec:9e:05:72:b2:0a:ac:31:fe:a9:0e:
52
+ e1:ce:82:5f
53
53
  -----BEGIN CERTIFICATE-----
54
- MIIDdjCCAt+gAwIBAgIBBzANBgkqhkiG9w0BAQUFADCBkjELMAkGA1UEBhMCVVMx
55
- ETAPBgNVBAgMCE5ldyBZb3JrMRYwFAYDVQQHDA1OZXcgWW9yayBDaXR5MQ4wDAYD
56
- VQQKDAUxMEdlbjEPMA0GA1UECwwGS2VybmVsMRowGAYDVQQDDBFNeSBDZXJ0IEF1
57
- dGhvcml0eTEbMBkGCSqGSIb3DQEJARYMcm9vdEBsYXphcnVzMB4XDTEzMDgyMzE0
58
- NTUzMloXDTQxMDEwNzE0NTUzMlowbjELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5l
59
- dyBZb3JrMRYwFAYDVQQHDA1OZXcgWW9yayBDaXR5MQ4wDAYDVQQKDAUxMEdlbjET
60
- MBEGA1UECwwKa2VybmVsdXNlcjEPMA0GA1UEAwwGY2xpZW50MIIBIjANBgkqhkiG
61
- 9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuhZC1Is9XopnnqfAzUqcnP2VuYO/9M8DjC7b
62
- qcE1WID24umHKITj0JtoYFEOQoTYb+g0zBiXedON2C8jESVvaXo4u4yyKemRvnmM
63
- zBtWmJjTgyrF+ZyGDCwkDlxGO6mVRGzF4HydA64NI5lJpEjdDjWi5bSLhr3AyM7V
64
- rMQ2855fFwAjjVOhQxujYZY2gE01ULWLaTE5tGOLlllc0eqS6+v6GzVkRLP286ad
65
- STpZ5eHCy5i+KbMi3TOX11BP28JYZBi1jDxrLSH2vY3l0tqNef6ngHWoFbnueX8B
66
- MR3l5xV2U2X2/vCTfSA9zP+byrJQLBs6adXmcM+svn5cM8RupwIDAQABo3sweTAJ
67
- BgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0
68
- aWZpY2F0ZTAdBgNVHQ4EFgQUSovuIkLm+GJMhjiNxXiVmMEQBXwwHwYDVR0jBBgw
69
- FoAUB0EZOp9+xbciTre81d/k/Am4ZBYwDQYJKoZIhvcNAQEFBQADgYEAExOo8N54
70
- xrHghcwn5gQoRJMd8f9egWkzH/N24EnK2a2q2/Wl+KZQu6GnQBTkL424IX81BGDb
71
- r/Ce3aHKC38DLi8ZHjJuHi2HaOM3R6hbk9GIQXPaiCFZJ9Q1HGontcDGF7rzh8jh
72
- 9I9DErz6jZDVhoPfUaXJ4JLwZtA3YW+FJBg=
54
+ MIIDkjCCAnqgAwIBAgIDATMhMA0GCSqGSIb3DQEBCwUAMHUxFzAVBgNVBAMTDlJ1
55
+ YnkgRHJpdmVyIENBMRAwDgYDVQQLEwdEcml2ZXJzMRAwDgYDVQQKEwdNb25nb0RC
56
+ MRYwFAYDVQQHEw1OZXcgWW9yayBDaXR5MREwDwYDVQQIEwhOZXcgWW9yazELMAkG
57
+ A1UEBhMCVVMwHhcNMTkwMjE0MjA1NzU4WhcNMzkwMjE0MjA1NzU4WjBwMRIwEAYD
58
+ VQQDEwlsb2NhbGhvc3QxEDAOBgNVBAsTB0RyaXZlcnMxEDAOBgNVBAoTB01vbmdv
59
+ REIxFjAUBgNVBAcTDU5ldyBZb3JrIENpdHkxETAPBgNVBAgTCE5ldyBZb3JrMQsw
60
+ CQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJYtU6kN
61
+ 9v48NFxgh1bIadqF5xCWxjluXAnzQuCnuzg376ZjbCiLHRpSAFIZlGP5WE6c0sqr
62
+ LiBmw337pFLmfFu/tAYf5J5rd/E4FLJWr3fdI5kcuAfleca5EBjqRwy139CmFRQJ
63
+ N1Ge8nwrZvjpWfZR6VDiEVLZzwAMnhVVUeHYlp0VVJx4218u8pFfVTw/GG8yFoJ2
64
+ noNsJSKxJ3BpzaqhUmRg5bMk7invLK3eCVMCCDkQT0r8iyEYzvH8VAx/puyysdbH
65
+ Ybu7P34xgPE5+E3owkUR4ayQl+VKWKYHG39hxKryZmYGsscbcd/cP1P+heSLlxHC
66
+ 0H4QNSuj533Ha/cCAwEAAaMwMC4wLAYDVR0RBCUwI4IJbG9jYWxob3N0hwR/AAAB
67
+ hxAAAAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4IBAQBIQV57/fW/MlLN
68
+ vPhxfg0NIgV9pRHthqwCnMPh9PQ20kiNpFtK0XaPJRdyB5lJLwnwJfkKpwaZq+j3
69
+ SMdM8aFO9GQ62CXkdjAq9rhx7gXNsnp/5sd6w6/x0RZzpb/bFHHE2PfnzoJIL87l
70
+ /Y+JS6YMHmtCnWRzfjcAB7XmubmJOATWZ93hJpjkSQaOLNPuwe4JuZU6vWphwtIZ
71
+ bOWGSWOu5JOSAUjSMpQsYv0ELn+iJoXdmXjamwyEGSmyxlXhTZfVmmPgjfhnTD8O
72
+ a2cTWLoo7EDmZcEYI64WHPt72bzChHH79ahxzKUvKDtFl9YVnuhE7J4FcrIKrDH+
73
+ qQ7hzoJf
73
74
  -----END CERTIFICATE-----
74
- -----BEGIN PRIVATE KEY-----
75
- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6FkLUiz1eimee
76
- p8DNSpyc/ZW5g7/0zwOMLtupwTVYgPbi6YcohOPQm2hgUQ5ChNhv6DTMGJd5043Y
77
- LyMRJW9peji7jLIp6ZG+eYzMG1aYmNODKsX5nIYMLCQOXEY7qZVEbMXgfJ0Drg0j
78
- mUmkSN0ONaLltIuGvcDIztWsxDbznl8XACONU6FDG6NhljaATTVQtYtpMTm0Y4uW
79
- WVzR6pLr6/obNWREs/bzpp1JOlnl4cLLmL4psyLdM5fXUE/bwlhkGLWMPGstIfa9
80
- jeXS2o15/qeAdagVue55fwExHeXnFXZTZfb+8JN9ID3M/5vKslAsGzpp1eZwz6y+
81
- flwzxG6nAgMBAAECggEBALYw92urjAFVFxCiA8W7aEzYhtAkaztft4R3mD/C19z4
82
- H0CZDeig+3+RuIactY5xDIu8WHz/EseHVlg0BmxSL5ugu4z8uq8IbNaFoVFw7r7m
83
- 2ieRKFY0ZpXiXcbllynw5iEhMjeRKhWhQmH5Qb2kTTINV5j4xKa+f9Lblx7Y2Uh4
84
- tsaOtlMwb98D2/KYJdTv5Nj1nyuSqRVhECsd00Cb6JUBGQBx8Ja0wFy9gEygq6kU
85
- w3s1XNOSnYNEo4FaVZwp5KZyCyBENcKpNUq4nXt/7ncEfVYdJck0Li3wN4Jr2J9S
86
- eHqRzh8QkHxc1Ro8ktcXaUSs9kFuwvVvb4rcGUpOMWkCgYEA9xxp8yDtFVgzMtc/
87
- vS8xgM1Wj4SrgKKYhE2wS05BJh/41oFMzfH1FpZ1GCM983r4QgYWoT71XsBgiOMC
88
- yN2p2IbV4V44bMGKJqaVMkB91CVCUWI6piaCQb/1CJTwaXE7zPim6dlUSxxBBnRn
89
- LP50NTscRLFcCZELD3Yl7jR8XFUCgYEAwMfkNFmGtBKAwlHZ3Y3XOwPWg+jCll7s
90
- 9nhv8TU2IB9pcCRGqyOT7k1YymvYkDT2Je4JUPWEBs4cW7yD61LrQ8w8+DrE9dGo
91
- czzGPyjOAANSX0asG74UjkNIQThmyEOltVHIxYMaSqowjHRSPdA+R4Od9EdcDdfS
92
- q5SfSVFxmwsCgYBtl1thqUOcCL7EGHQ7KdfxgJ+YDMWmyfWMD4xVCYKZLurD7xop
93
- 59nDR7zslIygE/RQC7Uzk+FsQTNO4ibVAIGX9syaI5gwm3DyjURzwehMEq4ju8W4
94
- 9DEmicRZJvysNrzHvasA4RKiMQihnTQ43yyYgvuZd3MTBxF5rPNLfll89QKBgQC9
95
- SsmiOZIR+OUjaTmS2bbQBNm7Fm8TNcxZyzKn1wb5jb57VbNqUfnskVgxEqpIFyjn
96
- X48YRqtH/1RLI5UpGXdXUBFB8Hr7oM1VsgQ7ejakPp7AXOWcLA2FDz3AhMAvvnTU
97
- 0KRihHPpgqk/EOy8M2Ej2XHcrcEO+q+quLmbRXRWtwKBgHacQiwci/2J+v0e9i52
98
- re/2AJHKP5MwNHFe1e01iNc5EEN0G+/Ut8XW19DWf6bsxqie0ChC+xN8TUst8alT
99
- F+tXTsHHmt/lRcjTROjT5XVuoqjtU2Q0QeVeGLgvObso+fZy3ZNeQuSJjWukdMZ3
100
- 57rGT6p0OuM8qbrTzpv3JMrm
101
- -----END PRIVATE KEY-----
75
+ -----BEGIN RSA PRIVATE KEY-----
76
+ MIIEowIBAAKCAQEAli1TqQ32/jw0XGCHVshp2oXnEJbGOW5cCfNC4Ke7ODfvpmNs
77
+ KIsdGlIAUhmUY/lYTpzSyqsuIGbDffukUuZ8W7+0Bh/knmt38TgUslavd90jmRy4
78
+ B+V5xrkQGOpHDLXf0KYVFAk3UZ7yfCtm+OlZ9lHpUOIRUtnPAAyeFVVR4diWnRVU
79
+ nHjbXy7ykV9VPD8YbzIWgnaeg2wlIrEncGnNqqFSZGDlsyTuKe8srd4JUwIIORBP
80
+ SvyLIRjO8fxUDH+m7LKx1sdhu7s/fjGA8Tn4TejCRRHhrJCX5UpYpgcbf2HEqvJm
81
+ Zgayxxtx39w/U/6F5IuXEcLQfhA1K6Pnfcdr9wIDAQABAoIBAClvRB/mrHkk30WF
82
+ lJHLJfmW7FPVZce+vUI5jgAyByPRuxtrXxIon9T9Pv1n9VtIFqdJ+ZbVeBqUf+eo
83
+ oIQG99TQpbjy378d46/4Sy2RYURvDT1XgSccl2bO9LQLH6NQIvqMeFBY4pxwgHLl
84
+ /rk6mQmvO/KHDUSQt95JnOxB6B+plv1prpQVGHVqzre8LAZdJdv/8wVqFHbrAGoU
85
+ 62wUQ66y5oSxLN9YUzTQNb8ECBRTfmF9WCF9aXx4TJyX0+WkyiztUx0ArBm/ANGv
86
+ k5GzPoL0UFRjVr+ObM755SHrJQ9pIOjJnZAA0DW8fHAQcV8XcA2UcqrA+jw/XX9Q
87
+ ku4cz5ECgYEA5iopSEu8WLEkCmVAYVurd1gQSlJQ6aYrcMas+p2kqW1p/hkDvREO
88
+ dt55evAKIENgVo9N4daN4K5ijftxxTQyX0HlO/0eeC6LpWIPjkkJ02H5htKvvIhw
89
+ zxJd7XTKyQA1/wOc/Ooo5MfGO44eBVVBzErX6rGzc/PFfLzlGDa567sCgYEApwiz
90
+ h9SppQwsbjXDjcOfJoZbmnJjzdMJ1rDUnLY7iCaVdf7cIaHCY72xSlgtruVkGQ6m
91
+ vYwjh/YnwU3qoBi1tbu+ByHWxImLwsLZMA4ct4IF5Qvi2d2v4GtOq/sQcqB+35d/
92
+ dJ4CcR1sHe6R5H0uvDDmNoJiJFESbtTD0Wt4VvUCgYAehOSoc3JsCEERJ8/bmP4p
93
+ ewHd+QBFmwUTlSSGrrSQyrNNQB/gyAw08tcE2CNfl8+EasgW9A4oBreGwBqb3Yn4
94
+ W5J729pYcUOPEGujoEevQcSGfhVTWHws2PCfdecVs/N09xOv7ZSykVLVvsh4SI/K
95
+ +PmcYye6bk53dcyi407P1QKBgAUbiwHYSue1G5azJiurk65F5X8viEW+8koSVi4E
96
+ lIVxSJi3Flwg6iTKpCU11Q/IC+uIOykIo/2AVW7fxxDmMIhCGWl2a27PFer6slF5
97
+ 3P7vhuaeGm23Da27GkjAAJzAs6B6rXcPbduvnqK7rNJj0Y4HoMKB8iZSJFInR2Wb
98
+ 964RAoGBAIvzvWDusSLOmkAN7KKwbmVdrKLgKPGtyNjJyKdp0zUxslOQsSraOq/K
99
+ hsBgotDdq8igR6iUHfmcSs7FVU1QBBMfqe5XVJhj4GWMe2VzRIvBcuvaMLyUuZ61
100
+ TwPjfJRUCACo4MSQHEBlbWq9ZYzO8nZ+FyCldN/n5Uevp84BOyBO
101
+ -----END RSA PRIVATE KEY-----