bunny 1.7.0 → 2.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/ISSUE_TEMPLATE.md +18 -0
- data/.gitignore +6 -1
- data/.rspec +1 -3
- data/.travis.yml +21 -14
- data/CONTRIBUTING.md +132 -0
- data/ChangeLog.md +745 -1
- data/Gemfile +13 -13
- data/LICENSE +1 -1
- data/README.md +41 -75
- data/Rakefile +54 -0
- data/bunny.gemspec +4 -10
- data/docker-compose.yml +28 -0
- data/docker/Dockerfile +24 -0
- data/docker/apt/preferences.d/erlang +3 -0
- data/docker/apt/sources.list.d/bintray.rabbitmq.list +2 -0
- data/docker/docker-entrypoint.sh +26 -0
- data/docker/rabbitmq.conf +29 -0
- data/examples/connection/automatic_recovery_with_basic_get.rb +1 -1
- data/examples/connection/automatic_recovery_with_client_named_queues.rb +1 -1
- data/examples/connection/automatic_recovery_with_multiple_consumers.rb +1 -1
- data/examples/connection/automatic_recovery_with_republishing.rb +1 -1
- data/examples/connection/automatic_recovery_with_server_named_queues.rb +1 -1
- data/examples/connection/channel_level_exception.rb +1 -9
- data/examples/connection/disabled_automatic_recovery.rb +1 -1
- data/examples/connection/heartbeat.rb +1 -1
- data/examples/consumers/high_and_low_priority.rb +1 -1
- data/examples/guides/extensions/alternate_exchange.rb +2 -0
- data/examples/guides/getting_started/hello_world.rb +2 -0
- data/examples/guides/getting_started/weathr.rb +2 -0
- data/examples/guides/queues/one_off_consumer.rb +2 -0
- data/examples/guides/queues/redeliveries.rb +2 -0
- data/lib/bunny.rb +6 -2
- data/lib/bunny/channel.rb +192 -109
- data/lib/bunny/channel_id_allocator.rb +6 -4
- data/lib/bunny/concurrent/continuation_queue.rb +34 -13
- data/lib/bunny/consumer_work_pool.rb +34 -6
- data/lib/bunny/cruby/socket.rb +29 -16
- data/lib/bunny/cruby/ssl_socket.rb +20 -7
- data/lib/bunny/exceptions.rb +7 -1
- data/lib/bunny/exchange.rb +11 -7
- data/lib/bunny/get_response.rb +1 -1
- data/lib/bunny/heartbeat_sender.rb +3 -2
- data/lib/bunny/jruby/socket.rb +23 -6
- data/lib/bunny/jruby/ssl_socket.rb +5 -0
- data/lib/bunny/queue.rb +12 -10
- data/lib/bunny/reader_loop.rb +31 -18
- data/lib/bunny/session.rb +389 -134
- data/lib/bunny/test_kit.rb +14 -0
- data/lib/bunny/timeout.rb +1 -12
- data/lib/bunny/transport.rb +114 -67
- data/lib/bunny/version.rb +1 -1
- data/repl +1 -1
- data/spec/config/rabbitmq.conf +13 -0
- data/spec/higher_level_api/integration/basic_ack_spec.rb +154 -22
- data/spec/higher_level_api/integration/basic_cancel_spec.rb +77 -11
- data/spec/higher_level_api/integration/basic_consume_spec.rb +60 -55
- data/spec/higher_level_api/integration/basic_consume_with_objects_spec.rb +6 -6
- data/spec/higher_level_api/integration/basic_get_spec.rb +31 -7
- data/spec/higher_level_api/integration/basic_nack_spec.rb +22 -19
- data/spec/higher_level_api/integration/basic_publish_spec.rb +11 -100
- data/spec/higher_level_api/integration/basic_qos_spec.rb +32 -4
- data/spec/higher_level_api/integration/basic_reject_spec.rb +94 -16
- data/spec/higher_level_api/integration/basic_return_spec.rb +4 -4
- data/spec/higher_level_api/integration/channel_close_spec.rb +51 -10
- data/spec/higher_level_api/integration/channel_open_spec.rb +12 -12
- data/spec/higher_level_api/integration/connection_recovery_spec.rb +412 -286
- data/spec/higher_level_api/integration/connection_spec.rb +284 -134
- data/spec/higher_level_api/integration/connection_stop_spec.rb +31 -19
- data/spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb +17 -17
- data/spec/higher_level_api/integration/dead_lettering_spec.rb +14 -14
- data/spec/higher_level_api/integration/exchange_bind_spec.rb +5 -5
- data/spec/higher_level_api/integration/exchange_declare_spec.rb +32 -31
- data/spec/higher_level_api/integration/exchange_delete_spec.rb +12 -12
- data/spec/higher_level_api/integration/exchange_unbind_spec.rb +5 -5
- data/spec/higher_level_api/integration/exclusive_queue_spec.rb +5 -5
- data/spec/higher_level_api/integration/heartbeat_spec.rb +4 -4
- data/spec/higher_level_api/integration/message_properties_access_spec.rb +49 -49
- data/spec/higher_level_api/integration/predeclared_exchanges_spec.rb +2 -2
- data/spec/higher_level_api/integration/publisher_confirms_spec.rb +92 -27
- data/spec/higher_level_api/integration/publishing_edge_cases_spec.rb +19 -19
- data/spec/higher_level_api/integration/queue_bind_spec.rb +23 -23
- data/spec/higher_level_api/integration/queue_declare_spec.rb +129 -34
- data/spec/higher_level_api/integration/queue_delete_spec.rb +2 -2
- data/spec/higher_level_api/integration/queue_purge_spec.rb +5 -5
- data/spec/higher_level_api/integration/queue_unbind_spec.rb +6 -6
- data/spec/higher_level_api/integration/read_only_consumer_spec.rb +9 -9
- data/spec/higher_level_api/integration/sender_selected_distribution_spec.rb +10 -10
- data/spec/higher_level_api/integration/tls_connection_spec.rb +218 -112
- data/spec/higher_level_api/integration/toxiproxy_spec.rb +76 -0
- data/spec/higher_level_api/integration/tx_commit_spec.rb +1 -1
- data/spec/higher_level_api/integration/tx_rollback_spec.rb +1 -1
- data/spec/higher_level_api/integration/with_channel_spec.rb +2 -2
- data/spec/issues/issue100_spec.rb +11 -12
- data/spec/issues/issue141_spec.rb +13 -14
- data/spec/issues/issue202_spec.rb +1 -1
- data/spec/issues/issue224_spec.rb +5 -5
- data/spec/issues/issue465_spec.rb +32 -0
- data/spec/issues/issue549_spec.rb +30 -0
- data/spec/issues/issue78_spec.rb +21 -24
- data/spec/issues/issue83_spec.rb +5 -6
- data/spec/issues/issue97_spec.rb +44 -45
- data/spec/lower_level_api/integration/basic_cancel_spec.rb +15 -16
- data/spec/lower_level_api/integration/basic_consume_spec.rb +20 -21
- data/spec/spec_helper.rb +2 -19
- data/spec/stress/channel_close_stress_spec.rb +3 -3
- data/spec/stress/channel_open_stress_spec.rb +4 -4
- data/spec/stress/channel_open_stress_with_single_threaded_connection_spec.rb +7 -7
- data/spec/stress/concurrent_consumers_stress_spec.rb +18 -16
- data/spec/stress/concurrent_publishers_stress_spec.rb +16 -19
- data/spec/stress/connection_open_close_spec.rb +9 -9
- data/spec/stress/merry_go_round_spec.rb +105 -0
- data/spec/tls/ca_certificate.pem +27 -16
- data/spec/tls/ca_key.pem +52 -27
- data/spec/tls/client_certificate.pem +27 -16
- data/spec/tls/client_key.pem +49 -25
- data/spec/tls/generate-server-cert.sh +8 -0
- data/spec/tls/server-openssl.cnf +10 -0
- data/spec/tls/server.csr +16 -0
- data/spec/tls/server_certificate.pem +27 -16
- data/spec/tls/server_key.pem +49 -25
- data/spec/toxiproxy_helper.rb +28 -0
- data/spec/unit/bunny_spec.rb +5 -5
- data/spec/unit/concurrent/atomic_fixnum_spec.rb +6 -6
- data/spec/unit/concurrent/condition_spec.rb +8 -8
- data/spec/unit/concurrent/linked_continuation_queue_spec.rb +2 -2
- data/spec/unit/concurrent/synchronized_sorted_set_spec.rb +16 -16
- data/spec/unit/exchange_recovery_spec.rb +39 -0
- data/spec/unit/version_delivery_tag_spec.rb +3 -3
- metadata +42 -35
- data/lib/bunny/system_timer.rb +0 -20
- data/spec/config/rabbitmq.config +0 -18
- data/spec/higher_level_api/integration/basic_recover_spec.rb +0 -18
- data/spec/higher_level_api/integration/confirm_select_spec.rb +0 -19
- data/spec/higher_level_api/integration/consistent_hash_exchange_spec.rb +0 -50
- data/spec/higher_level_api/integration/merry_go_round_spec.rb +0 -85
- data/spec/stress/long_running_consumer_spec.rb +0 -83
- data/spec/tls/cacert.pem +0 -18
- data/spec/tls/client_cert.pem +0 -18
- data/spec/tls/server_cert.pem +0 -18
- data/spec/unit/system_timer_spec.rb +0 -10
@@ -13,38 +13,38 @@ unless defined?(JRUBY_VERSION) && !ENV["FORCE_JRUBY_RUN"]
|
|
13
13
|
|
14
14
|
n.times do |i|
|
15
15
|
it "can be closed (automatic recovery disabled, take #{i})" do
|
16
|
-
c = Bunny.new(:
|
16
|
+
c = Bunny.new(automatically_recover: false)
|
17
17
|
c.start
|
18
18
|
ch = c.create_channel
|
19
19
|
|
20
|
-
c.
|
20
|
+
expect(c).to be_connected
|
21
21
|
c.stop
|
22
|
-
c.
|
22
|
+
expect(c).to be_closed
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
n.times do |i|
|
27
27
|
it "can be closed (automatic recovery enabled, take #{i})" do
|
28
|
-
c = Bunny.new(:
|
28
|
+
c = Bunny.new(automatically_recover: true)
|
29
29
|
c.start
|
30
30
|
ch = c.create_channel
|
31
31
|
|
32
|
-
c.
|
32
|
+
expect(c).to be_connected
|
33
33
|
c.stop
|
34
|
-
c.
|
34
|
+
expect(c).to be_closed
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
context "in the single threaded mode" do
|
39
39
|
n.times do |i|
|
40
40
|
it "can be closed (single threaded mode, take #{i})" do
|
41
|
-
c = Bunny.new(:
|
41
|
+
c = Bunny.new(automatically_recover: false, threaded: false)
|
42
42
|
c.start
|
43
43
|
ch = c.create_channel
|
44
44
|
|
45
|
-
c.
|
45
|
+
expect(c).to be_connected
|
46
46
|
c.stop
|
47
|
-
c.
|
47
|
+
expect(c).to be_closed
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "A batch of messages proxied by multiple intermediate consumers" do
|
4
|
+
let(:c1) do
|
5
|
+
c = Bunny.new(username: "bunny_gem",
|
6
|
+
password: "bunny_password",
|
7
|
+
vhost: "bunny_testbed",
|
8
|
+
heartbeat_timeout: 6)
|
9
|
+
c.start
|
10
|
+
c
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:c2) do
|
14
|
+
c = Bunny.new(username: "bunny_gem",
|
15
|
+
password: "bunny_password",
|
16
|
+
vhost: "bunny_testbed",
|
17
|
+
heartbeat_timeout: 6)
|
18
|
+
c.start
|
19
|
+
c
|
20
|
+
end
|
21
|
+
|
22
|
+
let(:c3) do
|
23
|
+
c = Bunny.new(username: "bunny_gem",
|
24
|
+
password: "bunny_password",
|
25
|
+
vhost: "bunny_testbed",
|
26
|
+
heartbeat_timeout: 6)
|
27
|
+
c.start
|
28
|
+
c
|
29
|
+
end
|
30
|
+
|
31
|
+
let(:c4) do
|
32
|
+
c = Bunny.new(username: "bunny_gem",
|
33
|
+
password: "bunny_password",
|
34
|
+
vhost: "bunny_testbed",
|
35
|
+
heartbeat_timeout: 6)
|
36
|
+
c.start
|
37
|
+
c
|
38
|
+
end
|
39
|
+
|
40
|
+
let(:c5) do
|
41
|
+
c = Bunny.new(username: "bunny_gem",
|
42
|
+
password: "bunny_password",
|
43
|
+
vhost: "bunny_testbed",
|
44
|
+
heartbeat_timeout: 6)
|
45
|
+
c.start
|
46
|
+
c
|
47
|
+
end
|
48
|
+
|
49
|
+
after :each do
|
50
|
+
[c1, c2, c3, c4, c5].each do |c|
|
51
|
+
c.close if c.open?
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
[1000, 5_000, 10_000, 20_000, 30_000, 50_000].each do |n|
|
56
|
+
# message flow is as follows:
|
57
|
+
#
|
58
|
+
# x => q4 => q3 => q2 => q1 => xs (results)
|
59
|
+
it "successfully reaches its final destination (batch size: #{n})" do
|
60
|
+
xs = []
|
61
|
+
|
62
|
+
ch1 = c1.create_channel
|
63
|
+
q1 = ch1.queue("", exclusive: true)
|
64
|
+
q1.subscribe(manual_ack: true) do |delivery_info, _, payload|
|
65
|
+
xs << payload
|
66
|
+
ch1.ack(delivery_info.delivery_tag)
|
67
|
+
end
|
68
|
+
|
69
|
+
ch2 = c2.create_channel
|
70
|
+
q2 = ch2.queue("", exclusive: true)
|
71
|
+
q2.subscribe do |_, _, payload|
|
72
|
+
q1.publish(payload)
|
73
|
+
end
|
74
|
+
|
75
|
+
ch3 = c3.create_channel(nil, 2)
|
76
|
+
q3 = ch3.queue("", exclusive: true)
|
77
|
+
q3.subscribe(manual_ack: true) do |delivery_info, _, payload|
|
78
|
+
q2.publish(payload)
|
79
|
+
ch3.ack(delivery_info.delivery_tag)
|
80
|
+
end
|
81
|
+
|
82
|
+
ch4 = c4.create_channel(nil, 4)
|
83
|
+
q4 = ch4.queue("", exclusive: true)
|
84
|
+
q4.subscribe do |_, _, payload|
|
85
|
+
q3.publish(payload)
|
86
|
+
end
|
87
|
+
|
88
|
+
ch5 = c5.create_channel(nil, 8)
|
89
|
+
x = ch5.default_exchange
|
90
|
+
|
91
|
+
n.times do |i|
|
92
|
+
x.publish("msg #{i}", routing_key: q4.name)
|
93
|
+
end
|
94
|
+
|
95
|
+
Bunny::TestKit.poll_until(90) do
|
96
|
+
xs.size >= n
|
97
|
+
end
|
98
|
+
|
99
|
+
expect(xs.size).to eq n
|
100
|
+
expect(xs.last).to eq "msg #{n - 1}"
|
101
|
+
|
102
|
+
[q1, q2, q3, q4].each { |q| q.delete }
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
data/spec/tls/ca_certificate.pem
CHANGED
@@ -1,18 +1,29 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
2
|
+
MIIFAjCCAuqgAwIBAgIJAOh5ofB2iC1IMA0GCSqGSIb3DQEBCwUAMDExIDAeBgNV
|
3
|
+
BAMMF1RMU0dlblNlbGZTaWduZWR0Um9vdENBMQ0wCwYDVQQHDAQkJCQkMB4XDTE3
|
4
|
+
MDcxMjE3MDUyNFoXDTI3MDcxMDE3MDUyNFowMTEgMB4GA1UEAwwXVExTR2VuU2Vs
|
5
|
+
ZlNpZ25lZHRSb290Q0ExDTALBgNVBAcMBCQkJCQwggIiMA0GCSqGSIb3DQEBAQUA
|
6
|
+
A4ICDwAwggIKAoICAQDLlcfVD3JI34j3akZEcw9A6Q3ra7wCXiBuK6i+QcB0Gpp/
|
7
|
+
AdQVyEwuC8DVwqnnCLoR0KKU7Iuhjwqk1aXzIcZAy42TiEtwCTJ1Rajlp6hjonWi
|
8
|
+
EYp+HFm6UZdeM94bV5khV0+vwE/MDcKpXzKYJlbYOv+RSPdizWb7m+tRnyQf79M8
|
9
|
+
wL8nx1CJbokV/fgmauRnbOkpAWSmq8MbuthdQHLNVAnHV4i4SEBB8KBiB1Rrxu+O
|
10
|
+
serH1KB+8ABLGUpLM/0rtUFlgo5waysNHUUvqYIcXff7yXNsNblZM8YYnhAK0rzX
|
11
|
+
y6MdqSgUHycQYCCJ7nuIVagpxLKSkJTJtH9anDzo0Y5c/w6huCxsnhbrBwg3FHga
|
12
|
+
sRPzuouIROH09yKbrOmbG7wmU3mWyB3bhVe+YmivQMq55QtHo3C/gBVsvsrjH/ql
|
13
|
+
ecxYa8aPRpeJU4eUjuvywY9200C3SdOyP+iM/yE9r3RG/B2qPhB6PqG/3SXkURGi
|
14
|
+
3B2bX1nD7VdDPbfO14j0m0rHBTnu3Ieao+KaAMpd6gWrPkOHRF87CYF4NOtqjFr8
|
15
|
+
rNe6cxR3Cy/h5YH7DYpS8VgIjMTkIEEo4sTDnQsFTE1fiPjzsfUl0cwSAPbIR4Hb
|
16
|
+
Sp/kt5zWSlV89u9CbIpGvvnKZ0fUiaVW9e3rjowPtBjcCSARn4tIIOftjVEmmwID
|
17
|
+
AQABox0wGzAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsF
|
18
|
+
AAOCAgEAUrza43ghwOUIuqbQLAfosr/9ucXnTA84Fcyp27bKbLme2Vfc9iRLwjib
|
19
|
+
hd9D1MygCSjxW5szWs/pwC486cGjWlUY5y4g5fS74S4hLvKW8jVBKuF3i0J8kNkO
|
20
|
+
7L2XZJb+0rQcFWCOh8dAJpBJqv8dH0xqRga9mVecHB+PtQY0G0qRkdCTCiIKr8gF
|
21
|
+
yhzoq8Rmo+H4yD8OfbMJHSS4vcEFgS6KhVLqvrGQ1cnfjWjaDeSMalHcnUxeYydV
|
22
|
+
dPAdi+/4k8jtjXTEAxTlVhsRwUJi4+jF43X3jNZ1dbrZV5SATnxJD2ygDjHH+Xw3
|
23
|
+
R97bARIgvXWmDHvIlxdIpmDJws3AvSThofI2uhTLSg5JLmRNZCjhcZc9EsnAxxAV
|
24
|
+
LKLG85Fp1sGfqvPeT+n6wfqNXyZ6X3pPXoR412uOdD3brKWfNM1rjqqdm6PWqxg0
|
25
|
+
wA3Axv/ZbtFWYcBVbePmA8SQATPnuAWYAueQ6R3vQwMFhf+KMt+GBQGt2gsIN4Gb
|
26
|
+
FbtSGLH5dOz9ap2zjSL5QS7ZRt2O1d4s5zEdRBadA19fr2hTA8KX4tvmoXhc2Iav
|
27
|
+
lmnAW1MDAGkhzIQmSfxM0N7rr4fNrqTHVv6NjUjeHxi483RxVXL6ZWu2Kb7LCVzs
|
28
|
+
pHlumeVpCafYGiBHt75SRFkPsn8HA+g8PYfSXCgLrA6tW3zMj7U=
|
18
29
|
-----END CERTIFICATE-----
|
data/spec/tls/ca_key.pem
CHANGED
@@ -1,27 +1,52 @@
|
|
1
|
-
-----BEGIN
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
2
|
+
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
|
51
|
+
uM2skhC6ROJPn3CCWPupNuPV2m7kCo4=
|
52
|
+
-----END PRIVATE KEY-----
|
@@ -1,18 +1,29 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
2
|
+
MIIE/zCCAuegAwIBAgIBAjANBgkqhkiG9w0BAQsFADAxMSAwHgYDVQQDDBdUTFNH
|
3
|
+
ZW5TZWxmU2lnbmVkdFJvb3RDQTENMAsGA1UEBwwEJCQkJDAeFw0xNzA3MTIxNzA1
|
4
|
+
MjVaFw0yNzA3MTAxNzA1MjVaMCQxETAPBgNVBAMMCG1lcmN1cmlvMQ8wDQYDVQQK
|
5
|
+
DAZjbGllbnQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDDsrXq/Dop
|
6
|
+
gZjWDsyVQSyV+GxD/2ckrG4mbXARECfb9vvhA1z8ErN1h6hp9zDKTqdn21iCd3m1
|
7
|
+
4AlTsM1ARk6kMuqtVAYzo25qtm8seQE3TnI41gOvrpy1ncqr9etRmds7lyfo7AVA
|
8
|
+
DC+rHAc1R3Gh+wc5xPexY7kbZv0mfURETGksGYKJ/VHE0dk/JAgyR6HooPEKRLce
|
9
|
+
gCCc7SjUtggj0mJLgLHtnns1Db2REe/tZTtzJ6DaxevdmeewGvQvQRo8l+OAysfL
|
10
|
+
Pc7VCevExnB0jRvjlSF+zbeqEZsUQiAiCa8zXZEH0ZXf3JE9ztIbNN9ouTL4Q7aX
|
11
|
+
N3GnddMXv5bunJzrnF6xUB3DzUDZjQasGIf9q3kr4qxP8BXOCHjaCLFgfRxwy7NG
|
12
|
+
64BOzTZ+OWJThF4kqvkWR5D0WeRyj6OCYU7pr8mjVayHhA3WdqMZ2eyZDPoqHGsx
|
13
|
+
FuBCW0/Ja2nrwHislQUkPHaH8gSjivAZeF40q5hD+3a0O5j4lEbNbFyE2GE3vjMD
|
14
|
+
9nxomfFeKI8IxdePjAc80Xoq0JDDiFMJ2Iu1oFSsRCucR+L9xloS3MRjzzrHZlnZ
|
15
|
+
xwLV+3x9QA97KjfsDwp8J8tWXs9fw71ZJgmcSJ5fzPjkxrlZ5xEQAsf50Tx8c6j4
|
16
|
+
lZhMEsLcARiGNJt21QfgKiLEBWvKgoSuxQIDAQABoy8wLTAJBgNVHRMEAjAAMAsG
|
17
|
+
A1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOC
|
18
|
+
AgEAFWAL4vDyshpfLtj+woBov4gwUrW7fFtrIKSpZ78FE3wTb5oDoK7DQb1qLiGy
|
19
|
+
XKv8O0La5z/pGKm7jeqDDSIwu7s/9nzui3m3le93Wed4PnEawprvND0IKJDtEN5N
|
20
|
+
J2Zet/CCm1keHLhZLPS4mXzKXI0BqubBhYuFJ+pO0F/l9kPxOfCe3l3fLj+Gsmpm
|
21
|
+
hqr1lasWlWc9IKoSgcAGw0Wr6M0EeP3mxJcrSDGtT+37KerefKXQrAC75IbO0hGo
|
22
|
+
CTMYltg0TxWZ90lUcuLIgSlopS8C88NFaxxNDf62Qy6DAjEb0S9nGEKfxcPRJcyz
|
23
|
+
DuE0YiOf8yp/8qgnN6mTo7tCr/FQRZvWt6Mt2UGh1lHMuA4Ab6O5T4hQ3oD9tj9H
|
24
|
+
D86noCp6I3caDJmUSxAc6H6pr0AebQ6TFE48tzFaKNcKQKzk3JUDOmoGP6ub1Hab
|
25
|
+
/SUcZ7pLx9rKSlF/EfjO/1NQ9jDFoHYT8FDw3Xj82K3xoWXKw7/bggLYfdEJzKxN
|
26
|
+
ThN4dcAefsdXY9mo6iABspMf9uCGPuq89gs6wYSM71R2hk+1CHiQRc4xSGJjJ037
|
27
|
+
Wk/0yCQkUmMcqCF4HQa2caOV3Paa9bvSXm8aRWn+atY/JdrgzM87nK49wjmWFGf9
|
28
|
+
bsyM5uI0G9rCclSKc9SNw6sAhDTuwTdA1ivRHJsPtOFtmCE=
|
18
29
|
-----END CERTIFICATE-----
|
data/spec/tls/client_key.pem
CHANGED
@@ -1,27 +1,51 @@
|
|
1
1
|
-----BEGIN RSA PRIVATE KEY-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
2
|
+
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
|
27
51
|
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,8 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
DIRNAME=$(dirname "$0")
|
4
|
+
|
5
|
+
openssl req -sha256 -new -key $DIRNAME/server_key.pem -out $DIRNAME/server.csr -subj "/CN=mercurio" -config $DIRNAME/server-openssl.cnf
|
6
|
+
openssl x509 -sha256 -req -in $DIRNAME/server.csr -CA $DIRNAME/ca_certificate.pem -CAkey $DIRNAME/ca_key.pem -CAcreateserial -CAserial $DIRNAME/ca.srl -out $DIRNAME/server_certificate.pem -days 3650 -extensions v3_req -extfile $DIRNAME/server-openssl.cnf
|
7
|
+
|
8
|
+
echo "Written new server CSR and certificate"
|
@@ -0,0 +1,10 @@
|
|
1
|
+
[req]
|
2
|
+
req_extensions = v3_req
|
3
|
+
distinguished_name = req_distinguished_name
|
4
|
+
[req_distinguished_name]
|
5
|
+
[ v3_req ]
|
6
|
+
basicConstraints = CA:FALSE
|
7
|
+
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
8
|
+
subjectAltName = @alt_names
|
9
|
+
[alt_names]
|
10
|
+
IP.1 = 127.0.0.1
|
data/spec/tls/server.csr
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
-----BEGIN CERTIFICATE REQUEST-----
|
2
|
+
MIICkjCCAXoCAQAwEzERMA8GA1UEAwwIbWVyY3VyaW8wggEiMA0GCSqGSIb3DQEB
|
3
|
+
AQUAA4IBDwAwggEKAoIBAQCkvvzm5nB3CDqTFEYQnfOy8DwJLm34MvdrKQAThzDy
|
4
|
+
qa37sb4IC0YclBFbZfsw8+paK+Rpo2Vlhzclb66z0cGs9SvxuKkJ45w0fk0ctxMg
|
5
|
+
tvWISRGZR7LMw5u0q2m61dK0FTGSl+qzJohb5Dklb6BApoGoIPH+eYraVxHR29x2
|
6
|
+
x8hqzBt5TpiUW8bu7LPQJbX0mYGhKQDf86kao+sptRQ2045D7vB3jrkPhq0XZVJi
|
7
|
+
QymzOSSejYSN1oZ464DtT+dpLBYHEVJoJPu4r4kY/8A7v+93PWQaDERKBfvwWHfV
|
8
|
+
U44xn7R/aojSvNT7kQILsf2BnfJlMwoedWQLxPddmB3PAgMBAAGgOjA4BgkqhkiG
|
9
|
+
9w0BCQ4xKzApMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMA8GA1UdEQQIMAaHBH8A
|
10
|
+
AAEwDQYJKoZIhvcNAQELBQADggEBAFyfaotajM/h2dyodKJqO6stAIpxiQXTds8V
|
11
|
+
5ZHDozBxzLZkeBIY+hsqh/owmqomk56swui+336WAKIBwIJyJrtIl8C/lupGaTbR
|
12
|
+
BouWWbyZOQAE2ExHcUgdGEOVoCN2ieBR4RVQ8Id4GAlHvlFGPqakaLMV6Zc7VqDh
|
13
|
+
vxdOLgATEE+MhebTo9yOHj14qdvzhi5w3ZEg1kdfOuGN9I4gJcv4PWwudBhn4wE7
|
14
|
+
oHAIP2nixROI7cZcZ9fBrimcdGQsXNZLTXiGzNra4utOXuQ7w5qoiEhHoxXalowE
|
15
|
+
KvEA9otLadjtULg6DRd3zYuIyrUiBIRUHZ1p2xSnd/lLekbMfCQ=
|
16
|
+
-----END CERTIFICATE REQUEST-----
|
@@ -1,18 +1,29 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
2
|
+
MIIE/zCCAuegAwIBAgIBATANBgkqhkiG9w0BAQsFADAxMSAwHgYDVQQDDBdUTFNH
|
3
|
+
ZW5TZWxmU2lnbmVkdFJvb3RDQTENMAsGA1UEBwwEJCQkJDAeFw0xNzA3MTIxNzA1
|
4
|
+
MjRaFw0yNzA3MTAxNzA1MjRaMCQxETAPBgNVBAMMCG1lcmN1cmlvMQ8wDQYDVQQK
|
5
|
+
DAZzZXJ2ZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCuwVeq0DrK
|
6
|
+
nKQg5zE4Ph9eY1v4ktJiHhTosgS0hE7DHWaulpXqt9SaqrVc8Kp7z+C1GCQRg8Vo
|
7
|
+
73DDQOl63sFwYvNO1uqyeS6mqMPamjgOIQ2/GGPwmTksJi/QlBH7u2lR4BoWA7uB
|
8
|
+
4zr8mxXlIfDzvLWL1Dz7yZZcfrcp28rDId+LoNjajaVrropqrlJ+GoQKN1fB2dkU
|
9
|
+
JTJocUFCw5+Pcslrymm3+9pDexB6u8vWyBy/jk27dp8VhDLfHTCkO6UTnvIBLfA3
|
10
|
+
5b7PWX7Q7QiOGhiGtoz7J3bqEoOkaM1cOEjSEO4AkLvcgKpqnQzP0xKmR57COFgA
|
11
|
+
UQBNSClOkmoNDI9pGl4ONNx7OnsFGvwqc1DrIUQPRXMZzgcqdjK7DgxAh68Mke3l
|
12
|
+
Mu7xkLsy7VWxiwTDFyukKuFNhXOxUrHJ/jI/s5LEZLiAWNvGNhDyJrWxFpTAjpk9
|
13
|
+
osNPdJw/rLSzliwYJDmYWdmKOif+mQw0QIhnKxtLnsdiNTbQVtixDlhUBUt+xWv2
|
14
|
+
IyFAcSDxZPEA7oLIflJdNG3GaQwIki/ZGDXmxSg2PhPdU42slGRaupPuUpFYFKUg
|
15
|
+
PZypjphNuUQkHasPD43Jacj96LyuDSuV/b8FQWQbegOv7sY/kCK3v6y6YQcqovkN
|
16
|
+
RWhOZE2zIFXRxT2iPY2LV/clgVkohrxzUwIDAQABoy8wLTAJBgNVHRMEAjAAMAsG
|
17
|
+
A1UdDwQEAwIFIDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOC
|
18
|
+
AgEAQBCmOD6yXPkGWIBcP35Qaghpyv9oxgv6AnJaU1KylTxR+C7ljT9EnygWBeTf
|
19
|
+
5giFYI2HnTSKOZQRhIk4/LsP9xnWJ6OjfOopC1YjHKcSV7VTVMTvd2OkgFIYPFgT
|
20
|
+
EXzfCX+NFkS9fD8D2hn/6ENir+N4opuobcLOq+jveAtwLrO/SrDprCiKa0Ka4n/L
|
21
|
+
10huMlBslqJ4aCQjAud0FZVikEzeZIIfPn/G7vC5Ya+IaV5SxzEv12krZpiktuHh
|
22
|
+
w5jkFZcIxQROLww5heC0xsHLRVX5pjqFwN54b8JeP5t+yr0y3aaQ0s525wkUP82/
|
23
|
+
QmNTLNLzOgMn+k5JkIygnVHji6avdO7suxt0BOMrdSzMd1pfH58umF4xoCspUSCq
|
24
|
+
Ko0ml5f3Kf1KTBQAV/a4iUIixID67tAd3tOaQgNFPEdbHXp09L2nxRvZMrh4Yimq
|
25
|
+
jmiX7rTOFnTUES4gfrfpLFSJXxaJlMOM6K08MljkMT0JtExBtiIqMXTnA0GNdkgY
|
26
|
+
W5Oa2W+Hvt8l0KDcdFIR64Uiqrgxmw8AirUI3R20kldDHB1XE+5y34CgMVYiHDZ9
|
27
|
+
UGf2wIrg+rsWUqvSgUgFO0IVsP4Z+fFJP/qpca5ObbSLCF0rM5tCh6i7P2893+S9
|
28
|
+
/eJyRAiTABMrVpFAhvMQGdBtKtXZ8gryJ2M29Kup7JW0OEM=
|
18
29
|
-----END CERTIFICATE-----
|