logstash-mixin-rabbitmq_connection 5.0.0-java → 6.2.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.ci/docker-compose.yml +17 -0
- data/.ci/run.sh +7 -0
- data/.travis.yml +2 -18
- data/CHANGELOG.md +59 -0
- data/Gemfile +8 -0
- data/lib/logstash/plugin_mixins/rabbitmq_connection.rb +40 -16
- data/logstash-mixin-rabbitmq_connection.gemspec +7 -2
- data/spec/fixtures/README.md +150 -0
- data/spec/fixtures/client/cert.pem +67 -16
- data/spec/fixtures/client/key.pem +25 -25
- data/spec/fixtures/client/keycert.p12 +0 -0
- data/spec/fixtures/client/req.pem +13 -13
- data/spec/fixtures/client_untrusted/cert.pem +19 -0
- data/spec/fixtures/client_untrusted/key.pem +28 -0
- data/spec/fixtures/client_untrusted/keycert.p12 +0 -0
- data/spec/fixtures/server/cert.pem +67 -16
- data/spec/fixtures/server/key.pem +25 -25
- data/spec/fixtures/server/keycert.p12 +0 -0
- data/spec/fixtures/server/req.pem +13 -13
- data/spec/fixtures/testca/certs/05.pem +69 -0
- data/spec/fixtures/testca/certs/06.pem +69 -0
- data/spec/fixtures/testca/index.txt +2 -0
- data/spec/fixtures/testca/index.txt.old +2 -0
- data/spec/fixtures/testca/openssl.cnf +1 -1
- data/spec/fixtures/testca/serial +1 -1
- data/spec/fixtures/testca/serial.old +1 -1
- data/spec/plugin_mixins/rabbitmq_connection_spec.rb +89 -20
- metadata +24 -10
- data/CHANGELOG +0 -44
- data/spec/fixtures/password_for_files +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: facc2c0bbb94d9ffe28e084637a8bffdafd34b6b7ac1585bf44a519d4043253c
|
4
|
+
data.tar.gz: d7462fe30d31bd4851210100e0ddf6506a3045f2777dc877a77c06a320f24abd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf0e3772d6d7ef7b0c1f9c77aab348a1dd8fe2bba5d7afa78abbdc4cacd72f13397406d6a7edc7aef0493ad17f71e74d0ef5be81517bcbf4a3200773d4a0eda0
|
7
|
+
data.tar.gz: 5b3790fa5d4dc80eed67701bd05712ede0299d0b2569905385758f54c7a9ab17fd87fe4cca9602128176eb1dacc7210f45c1b49202d98a77e42830a60346e961
|
@@ -0,0 +1,17 @@
|
|
1
|
+
version: '3'
|
2
|
+
|
3
|
+
# run tests: cd ci/unit; docker-compose up --build --force-recreate
|
4
|
+
# manual: cd ci/unit; docker-compose run logstash bash
|
5
|
+
services:
|
6
|
+
|
7
|
+
logstash:
|
8
|
+
build:
|
9
|
+
context: ../
|
10
|
+
dockerfile: .ci/Dockerfile
|
11
|
+
args:
|
12
|
+
- ELASTIC_STACK_VERSION=$ELASTIC_STACK_VERSION
|
13
|
+
command: .ci/run.sh
|
14
|
+
environment:
|
15
|
+
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
|
16
|
+
LOGSTASH_SOURCE: 1
|
17
|
+
tty: true
|
data/.ci/run.sh
ADDED
data/.travis.yml
CHANGED
@@ -1,18 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
language: ruby
|
4
|
-
cache: bundler
|
5
|
-
rvm:
|
6
|
-
- jruby-1.7.25
|
7
|
-
script:
|
8
|
-
- bundle exec rspec spec
|
9
|
-
jdk: oraclejdk8
|
10
|
-
matrix:
|
11
|
-
include:
|
12
|
-
- rvm: jruby-9.1.10.0
|
13
|
-
env: LOGSTASH_BRANCH=master
|
14
|
-
- rvm: jruby-9.1.10.0
|
15
|
-
env: LOGSTASH_BRANCH=6.x
|
16
|
-
- rvm: jruby-1.7.25
|
17
|
-
env: LOGSTASH_BRANCH=5.6
|
18
|
-
fast_finish: true
|
1
|
+
import:
|
2
|
+
- logstash-plugins/.ci:travis/travis.yml@1.x
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
## 6.2.0
|
2
|
+
- Remove ruby pipeline dependency. Starting from Logstash 8, Ruby execution engine is not available. All pipelines should use Java pipeline [#64](https://github.com/logstash-plugins/logstash-mixin-rabbitmq_connection/pull/64)
|
3
|
+
- Updated ci setting to use the share ci repository
|
4
|
+
## 6.1.1
|
5
|
+
- Fixed issue with custom port assignment when multiple hosts are specified. [#54](https://github.com/logstash-plugins/logstash-mixin-rabbitmq_connection/pull/54)
|
6
|
+
|
7
|
+
## 6.1.0
|
8
|
+
- Updated `march_hare` dependency to `4.x`, which enables consumers to reliably manage a connection blocked/unblocked state machine that survives connection recovery.
|
9
|
+
- Removed support for Logstash 5.x since `march_hare` >= 3.x is not compatible.
|
10
|
+
|
11
|
+
## 6.0.0
|
12
|
+
- Removed obsolete options `verify_ssl`, `debug`, `tls_certificate_path` and `tls_certificate_password`
|
13
|
+
|
14
|
+
## 5.0.2
|
15
|
+
- Bug Fix: undefined method `value' for nil:NilClass with SSL enabled, but no certificates provided [#109](https://github.com/logstash-plugins/logstash-input-rabbitmq/issues/109)
|
16
|
+
## 5.0.1
|
17
|
+
- Relax constraint on march hare to allow 3.x [#44](https://github.com/logstash-plugins/logstash-mixin-rabbitmq_connection/issues/44)
|
18
|
+
- Validate :ssl_certificate_password as a password [#43](https://github.com/logstash-plugins/logstash-mixin-rabbitmq_connection/issues/43)
|
19
|
+
## 5.0.0
|
20
|
+
- Mark deprecated options `debug`, `tls_certificate_path` and `tls_certificate_password` as obsolete
|
21
|
+
## 4.3.0
|
22
|
+
- Bump march hare to 3.0.0
|
23
|
+
## 4.2.2
|
24
|
+
- Bump march hare to 2.22.0 to properly convert LongString to String
|
25
|
+
## 4.2.1
|
26
|
+
- Bump march_hare version to 2.20.0 to fix reconnection issues
|
27
|
+
## 4.2.0
|
28
|
+
- Include URL of server when logging errors
|
29
|
+
- Add warning log when connection is severed
|
30
|
+
## 4.1.3
|
31
|
+
- Bump march_hare version to 2.19.0 to fix reconnection failures with proxies. See [#76](https://github.com/logstash-plugins/logstash-input-rabbitmq/issues/76) for
|
32
|
+
more info
|
33
|
+
## 4.1.2
|
34
|
+
- Retry the connection attempt if there is an IO Exception.
|
35
|
+
## 4.1.1
|
36
|
+
- Remove internal Logstash deps that were not necessary
|
37
|
+
## 4.1.0
|
38
|
+
- Fix SSL option to be boolean once again
|
39
|
+
- Add separate ssl_version parameter
|
40
|
+
- Mark verify_ssl parameter as obsolete since it never worked
|
41
|
+
- Better checks for SSL argument consistency
|
42
|
+
## 2.4.0
|
43
|
+
- Add SSL/TLS Support
|
44
|
+
- Add support for "x-consistent-hash" and "x-modulus-hash" exchanges
|
45
|
+
## 2.3.1
|
46
|
+
- use logstash-core-plugin-api as dependency instead of logstash-core directly
|
47
|
+
## 2.3.0
|
48
|
+
- Bump march_mare version to 2.15.0 to fix perms issue internal to march hare gem (.jar not installed with o+r perms)
|
49
|
+
## 2.2.0
|
50
|
+
- Rollback the changes in 2.1.0 . prefetch_count only belongs in the input plugin
|
51
|
+
## 2.1.0
|
52
|
+
- Add prefetch_count config option
|
53
|
+
## 2.0.3
|
54
|
+
- Add heartbeat setting
|
55
|
+
- Add connect_timeout setting
|
56
|
+
## 2.0.0
|
57
|
+
- Make LS2 compatible
|
58
|
+
## 1.0.1
|
59
|
+
- Initial Release
|
data/Gemfile
CHANGED
@@ -2,3 +2,11 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in logstash-mass_effect.gemspec
|
4
4
|
gemspec
|
5
|
+
|
6
|
+
logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
|
7
|
+
use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
|
8
|
+
|
9
|
+
if Dir.exist?(logstash_path) && use_logstash_source
|
10
|
+
gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
|
11
|
+
gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
|
12
|
+
end
|
@@ -3,6 +3,7 @@ require "logstash/outputs/base"
|
|
3
3
|
require "logstash/namespace"
|
4
4
|
require "march_hare"
|
5
5
|
require "java"
|
6
|
+
require "stud/interval"
|
6
7
|
|
7
8
|
# Common functionality for the rabbitmq input/output
|
8
9
|
module LogStash
|
@@ -54,17 +55,11 @@ module LogStash
|
|
54
55
|
# Version of the SSL protocol to use.
|
55
56
|
config :ssl_version, :validate => :string, :default => "TLSv1.2"
|
56
57
|
|
57
|
-
config :verify_ssl, :validate => :boolean, :default => false,
|
58
|
-
:obsolete => "This function did not actually function correctly and was removed." +
|
59
|
-
"If you wish to validate SSL certs use the ssl_certificate_path and ssl_certificate_password options."
|
60
|
-
|
61
58
|
# Path to an SSL certificate in PKCS12 (.p12) format used for verifying the remote host
|
62
59
|
config :ssl_certificate_path, :validate => :path
|
63
60
|
|
64
61
|
# Password for the encrypted PKCS12 (.p12) certificate file specified in ssl_certificate_path
|
65
|
-
config :ssl_certificate_password, :validate => :
|
66
|
-
|
67
|
-
config :debug, :validate => :boolean, :obsolete => "Use the logstash --debug flag for this instead."
|
62
|
+
config :ssl_certificate_password, :validate => :password
|
68
63
|
|
69
64
|
# Set this to automatically recover from a broken connection. You almost certainly don't want to override this!!!
|
70
65
|
config :automatic_recovery, :validate => :boolean, :default => true
|
@@ -81,12 +76,6 @@ module LogStash
|
|
81
76
|
# Passive queue creation? Useful for checking queue existance without modifying server state
|
82
77
|
config :passive, :validate => :boolean, :default => false
|
83
78
|
|
84
|
-
# TLS certifcate path
|
85
|
-
config :tls_certificate_path, :validate => :path, :obsolete => "This setting is obsolete. Use ssl_certificate_path instead"
|
86
|
-
|
87
|
-
# TLS certificate password
|
88
|
-
config :tls_certificate_password, :validate => :string, :obsolete => "This setting is obsolete. Use ssl_certificate_password instead"
|
89
|
-
|
90
79
|
# Extra queue arguments as an array.
|
91
80
|
# To make a RabbitMQ queue mirrored, use: `{"x-ha-policy" => "all"}`
|
92
81
|
config :arguments, :validate => :array, :default => {}
|
@@ -107,8 +96,7 @@ module LogStash
|
|
107
96
|
|
108
97
|
s = {
|
109
98
|
:vhost => @vhost,
|
110
|
-
:
|
111
|
-
:port => @port,
|
99
|
+
:addresses => addresses_from_hosts_and_port(@host, @port),
|
112
100
|
:user => @user,
|
113
101
|
:automatic_recovery => @automatic_recovery,
|
114
102
|
:pass => @password ? @password.value : "guest",
|
@@ -121,7 +109,7 @@ module LogStash
|
|
121
109
|
s[:tls] = @ssl_version
|
122
110
|
|
123
111
|
cert_path = @ssl_certificate_path
|
124
|
-
cert_pass = @ssl_certificate_password
|
112
|
+
cert_pass = @ssl_certificate_password.value if @ssl_certificate_password
|
125
113
|
|
126
114
|
if !!cert_path ^ !!cert_pass
|
127
115
|
raise LogStash::ConfigurationError, "RabbitMQ requires both ssl_certificate_path AND ssl_certificate_password to be set!"
|
@@ -134,6 +122,42 @@ module LogStash
|
|
134
122
|
@rabbitmq_settings = s
|
135
123
|
end
|
136
124
|
|
125
|
+
|
126
|
+
# Adds port to the value of host if it is not already supplied
|
127
|
+
def format_address(host, port)
|
128
|
+
case host.count(':')
|
129
|
+
when 0
|
130
|
+
"#{host}:#{port}"
|
131
|
+
when 1
|
132
|
+
host
|
133
|
+
else
|
134
|
+
format_ipv6(host, port)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
# Formats an IPv6 to include the port, if it is not already given, conforming to the format used for
|
139
|
+
# literal IPv6 addresses in URIs,
|
140
|
+
# eg [2406:da00:ff00::6b15:edbc]:80
|
141
|
+
def format_ipv6(host, port)
|
142
|
+
last_bracket = host.rindex(']')
|
143
|
+
if last_bracket
|
144
|
+
if last_bracket < host.rindex(':')
|
145
|
+
host
|
146
|
+
else
|
147
|
+
"#{host}:#{port}"
|
148
|
+
end
|
149
|
+
else
|
150
|
+
"[#{host}]:#{port}"
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
def addresses_from_hosts_and_port(hosts, port)
|
155
|
+
# Expand host to include port, unless port is already present
|
156
|
+
# (Allowing hosts with port was a previously undocumented feature)
|
157
|
+
hosts.map{|host|format_address(host, port)}
|
158
|
+
end
|
159
|
+
|
160
|
+
|
137
161
|
def connect!
|
138
162
|
@hare_info = connect() unless @hare_info # Don't duplicate the conn!
|
139
163
|
rescue MarchHare::Exception, java.io.IOException => e
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = 'logstash-mixin-rabbitmq_connection'
|
4
|
-
s.version = '
|
4
|
+
s.version = '6.2.0'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Common functionality for RabbitMQ plugins"
|
7
7
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
@@ -17,7 +17,12 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
18
18
|
|
19
19
|
s.platform = RUBY_PLATFORM
|
20
|
-
|
20
|
+
|
21
|
+
# MarchHare 3.x+ includes ruby syntax from 2.x
|
22
|
+
# This effectively requires Logstash >= 6.x
|
23
|
+
s.required_ruby_version = '>= 2.0.0'
|
24
|
+
|
25
|
+
s.add_runtime_dependency 'march_hare', ['~> 4.0'] #(MIT license)
|
21
26
|
s.add_runtime_dependency 'stud', '~> 0.0.22'
|
22
27
|
|
23
28
|
s.add_development_dependency 'logstash-devutils'
|
@@ -0,0 +1,150 @@
|
|
1
|
+
# TLS Testing notes
|
2
|
+
|
3
|
+
Currently all TLS integration style testing is manual. This fixture may be used to help test.
|
4
|
+
|
5
|
+
* client - has the key store with client public/private key and the server public key
|
6
|
+
* server - has the key store with server public/private key and the client public key
|
7
|
+
* client_untrusted - has a keystore with public/private key that is self signed
|
8
|
+
|
9
|
+
logstash config
|
10
|
+
---------
|
11
|
+
```
|
12
|
+
input {
|
13
|
+
rabbitmq {
|
14
|
+
host => "localhost"
|
15
|
+
port => 5671
|
16
|
+
queue => "hello"
|
17
|
+
codec => plain
|
18
|
+
ssl => true
|
19
|
+
ssl_certificate_path => "/Users/jake/workspace/plugins/logstash-mixin-rabbitmq_connection/spec/fixtures/client/keycert.p12"
|
20
|
+
ssl_certificate_password => "MySecretPassword"
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
output{ stdout { codec => rubydebug } }
|
25
|
+
```
|
26
|
+
|
27
|
+
rabbit mq install
|
28
|
+
--------
|
29
|
+
(mac)
|
30
|
+
|
31
|
+
```
|
32
|
+
brew install rabbitmq
|
33
|
+
export PATH=$PATH:/usr/local/sbin
|
34
|
+
vim /usr/local/etc/rabbitmq/rabbitmq.config
|
35
|
+
|
36
|
+
```
|
37
|
+
```
|
38
|
+
[
|
39
|
+
{rabbit, [
|
40
|
+
{ssl_listeners, [5671]},
|
41
|
+
{ssl_options, [{cacertfile,"/Users/jake/workspace/plugins/logstash-mixin-rabbitmq_connection/spec/fixtures/testca/cacert.pem"},
|
42
|
+
{certfile,"/Users/jake/workspace/plugins/logstash-mixin-rabbitmq_connection/spec/fixtures/server/cert.pem"},
|
43
|
+
{keyfile,"/Users/jake/workspace/plugins/logstash-mixin-rabbitmq_connection/spec/fixtures/server/key.pem"},
|
44
|
+
{verify,verify_peer},
|
45
|
+
{fail_if_no_peer_cert,false}]}
|
46
|
+
]}
|
47
|
+
].
|
48
|
+
```
|
49
|
+
```
|
50
|
+
export PATH=$PATH:/usr/local/sbin
|
51
|
+
rabbitmq-server
|
52
|
+
tail -f /usr/local/var/log/rabbitmq/rabbit@localhost.log
|
53
|
+
```
|
54
|
+
|
55
|
+
sending a test message with ruby
|
56
|
+
----------
|
57
|
+
https://www.rabbitmq.com/tutorials/tutorial-one-ruby.html
|
58
|
+
|
59
|
+
```
|
60
|
+
gem install bunny --version ">= 2.6.4"
|
61
|
+
```
|
62
|
+
Create a file called send.rb
|
63
|
+
```
|
64
|
+
#!/usr/bin/env ruby
|
65
|
+
# encoding: utf-8
|
66
|
+
|
67
|
+
require "bunny"
|
68
|
+
|
69
|
+
conn = Bunny.new(:automatically_recover => false)
|
70
|
+
conn.start
|
71
|
+
|
72
|
+
ch = conn.create_channel
|
73
|
+
q = ch.queue("hello")
|
74
|
+
|
75
|
+
ch.default_exchange.publish("Test message", :routing_key => q.name)
|
76
|
+
puts "Message sent'"
|
77
|
+
|
78
|
+
conn.close
|
79
|
+
```
|
80
|
+
Send the message with Logstash running as the consumer
|
81
|
+
```
|
82
|
+
ruby send.rb
|
83
|
+
```
|
84
|
+
|
85
|
+
password for all files
|
86
|
+
--------
|
87
|
+
MySecretPassword
|
88
|
+
|
89
|
+
start from testca dir
|
90
|
+
---------
|
91
|
+
```
|
92
|
+
cd testca
|
93
|
+
```
|
94
|
+
|
95
|
+
client
|
96
|
+
-------
|
97
|
+
```
|
98
|
+
openssl genrsa -out ../client/key.pem 2048
|
99
|
+
openssl req -config openssl.cnf -key ../client/key.pem -new -sha256 -out ../client/req.pem
|
100
|
+
# for hostname use localhost, O=client
|
101
|
+
openssl ca -config openssl.cnf -in ../client/req.pem -out ../client/cert.pem
|
102
|
+
openssl x509 -in ../client/cert.pem -text -noout
|
103
|
+
openssl pkcs12 -export -out ../client/keycert.p12 -inkey ../client/key.pem -in ../client/cert.pem
|
104
|
+
```
|
105
|
+
|
106
|
+
server
|
107
|
+
-------
|
108
|
+
```
|
109
|
+
openssl genrsa -out ../server/key.pem 2048
|
110
|
+
openssl req -config openssl.cnf -key ../server/key.pem -new -sha256 -out ../server/req.pem
|
111
|
+
# for hostname use localhost, O=server
|
112
|
+
openssl ca -config openssl.cnf -in ../server/req.pem -out ../server/cert.pem
|
113
|
+
openssl x509 -in ../server/cert.pem -text -noout
|
114
|
+
openssl pkcs12 -export -out ../server/keycert.p12 -inkey ../server/key.pem -in ../server/cert.pem
|
115
|
+
```
|
116
|
+
|
117
|
+
establish trust
|
118
|
+
----------
|
119
|
+
```
|
120
|
+
cd server
|
121
|
+
keytool -import -file ../client/cert.pem -alias client_cert -keystore keycert.p12
|
122
|
+
cd client
|
123
|
+
keytool -import -file ../server/cert.pem -alias server_cert -keystore keycert.p12
|
124
|
+
```
|
125
|
+
|
126
|
+
reading
|
127
|
+
-----------
|
128
|
+
```
|
129
|
+
openssl x509 -in cert.pem -text -noout
|
130
|
+
keytool -list -v -keystore keycert.p12
|
131
|
+
```
|
132
|
+
|
133
|
+
self signed cert (untrusted)
|
134
|
+
-------
|
135
|
+
```
|
136
|
+
openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -subj "/CN=localhost, O=client" -days 10000
|
137
|
+
openssl pkcs12 -export -out keycert.p12 -inkey key.pem -in cert.pem
|
138
|
+
|
139
|
+
```
|
140
|
+
|
141
|
+
Issue [44](https://github.com/logstash-plugins/logstash-mixin-rabbitmq_connection/issues/44) validation
|
142
|
+
---------
|
143
|
+
configure Logstash to the untrusted cert :`ssl_certificate_path => "/Users/jake/workspace/plugins/logstash-mixin-rabbitmq_connection/spec/fixtures/client_untrusted/keycert.p12"`
|
144
|
+
|
145
|
+
This _SHOULD_ fail an error like the following:
|
146
|
+
```
|
147
|
+
Using TLS/SSL version TLSv1.2
|
148
|
+
[2017-12-19T12:47:12,891][ERROR][logstash.inputs.rabbitmq ] RabbitMQ connection error, will retry. {:error_message=>"sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target", :exception=>"Java::JavaxNetSsl::SSLHandshakeException"}
|
149
|
+
```
|
150
|
+
There should _NOT_ be any warnings about a NullTrustManager or disabling verification, and you should _NOT_ be able to send messages.
|
@@ -1,18 +1,69 @@
|
|
1
|
+
Certificate:
|
2
|
+
Data:
|
3
|
+
Version: 3 (0x2)
|
4
|
+
Serial Number: 5 (0x5)
|
5
|
+
Signature Algorithm: sha256WithRSAEncryption
|
6
|
+
Issuer: CN=MyTestCA
|
7
|
+
Validity
|
8
|
+
Not Before: Dec 18 23:38:39 2017 GMT
|
9
|
+
Not After : May 5 23:38:39 2045 GMT
|
10
|
+
Subject: CN=localhost, O=client
|
11
|
+
Subject Public Key Info:
|
12
|
+
Public Key Algorithm: rsaEncryption
|
13
|
+
Public-Key: (2048 bit)
|
14
|
+
Modulus:
|
15
|
+
00:cb:58:26:53:85:b2:d2:25:6e:b8:bd:09:2a:b3:
|
16
|
+
e7:c5:bb:05:bc:5e:57:41:1b:d5:9a:90:0a:55:4a:
|
17
|
+
b9:2f:c0:f7:d0:73:aa:fe:ed:8c:a4:8a:62:42:db:
|
18
|
+
e2:7b:5b:17:66:a7:2a:6a:a8:6a:59:fc:ac:8e:bb:
|
19
|
+
4c:ca:68:3f:50:73:e6:01:dd:f0:63:8a:c4:da:b6:
|
20
|
+
46:16:e8:fe:dd:14:f5:d8:71:06:4f:06:6c:55:c9:
|
21
|
+
41:63:04:ab:4c:5d:35:aa:4d:d5:27:dd:0d:9e:be:
|
22
|
+
47:6c:06:56:9c:0a:48:23:ce:c3:4e:9d:e2:bc:3f:
|
23
|
+
78:8f:ec:24:73:97:8f:94:97:38:e4:4e:75:eb:aa:
|
24
|
+
14:9f:6e:3c:8e:1f:0a:bf:37:9f:65:f7:2a:48:9e:
|
25
|
+
c1:f4:31:a6:b2:19:73:62:4d:b9:9f:4d:bd:2a:cb:
|
26
|
+
c6:c5:55:75:b6:63:f8:56:c8:4c:9d:98:b5:3a:e5:
|
27
|
+
16:96:09:cc:53:ca:3e:82:fb:e4:b4:ff:1b:aa:d3:
|
28
|
+
6c:01:1f:00:31:da:81:2e:82:7e:d8:a5:a1:bd:5d:
|
29
|
+
85:f7:22:01:fb:77:46:9b:23:0a:a1:b4:e1:66:b7:
|
30
|
+
ff:c9:9b:f6:be:0d:1a:39:d1:2e:1c:40:4c:a9:e5:
|
31
|
+
25:05:9c:57:99:95:f4:0c:67:1e:b0:cb:d3:4a:b0:
|
32
|
+
2c:cd
|
33
|
+
Exponent: 65537 (0x10001)
|
34
|
+
X509v3 extensions:
|
35
|
+
X509v3 Basic Constraints:
|
36
|
+
CA:FALSE
|
37
|
+
Signature Algorithm: sha256WithRSAEncryption
|
38
|
+
27:c6:56:63:d5:18:c2:32:e7:c2:7c:45:2d:15:02:48:a7:eb:
|
39
|
+
8a:fc:a2:70:65:e1:ce:2f:f2:fa:78:3c:e0:5f:f8:69:1f:a6:
|
40
|
+
f1:cd:d7:32:f7:46:60:74:bf:18:71:81:f4:42:d8:90:a1:4b:
|
41
|
+
83:07:b0:dc:c9:33:84:a4:e9:e4:84:e9:9a:02:c2:78:86:bd:
|
42
|
+
b9:9e:30:63:d6:97:f3:8b:cc:0f:d5:81:dc:05:8c:01:7a:30:
|
43
|
+
53:ab:2a:3c:23:b5:a4:16:dc:1b:a0:35:47:b5:2d:b5:6d:d8:
|
44
|
+
a1:c8:98:7f:77:a9:00:3e:9e:44:c7:75:d8:91:15:56:7b:c4:
|
45
|
+
a4:7c:0d:73:3b:a6:9a:55:59:c2:d7:f4:71:0d:1e:46:0e:da:
|
46
|
+
01:9f:15:d8:02:6b:e6:85:23:64:1c:c5:da:b3:4e:18:23:33:
|
47
|
+
79:80:c9:1c:cc:35:fd:0f:37:8d:12:40:6c:5d:a2:16:cb:17:
|
48
|
+
e4:f7:90:b9:8f:8e:a5:ab:0e:c8:64:86:c3:b0:64:ef:46:7a:
|
49
|
+
82:21:a9:4b:8f:bd:5a:a0:b4:54:84:36:2b:bc:4e:30:e3:8c:
|
50
|
+
fe:ea:7f:49:c2:fb:2f:5a:7d:c6:16:7a:4c:8a:e3:ec:68:76:
|
51
|
+
de:80:20:ab:f4:76:09:27:65:26:e1:31:9a:02:6a:af:08:39:
|
52
|
+
aa:40:36:40
|
1
53
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
GKm0/sj2BpZf9D4Kl8LppAIxcphBUg==
|
54
|
+
MIICuTCCAaGgAwIBAgIBBTANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDDAhNeVRl
|
55
|
+
c3RDQTAeFw0xNzEyMTgyMzM4MzlaFw00NTA1MDUyMzM4MzlaMB4xHDAaBgNVBAMM
|
56
|
+
E2xvY2FsaG9zdCwgTz1jbGllbnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
57
|
+
AoIBAQDLWCZThbLSJW64vQkqs+fFuwW8XldBG9WakApVSrkvwPfQc6r+7YykimJC
|
58
|
+
2+J7WxdmpypqqGpZ/KyOu0zKaD9Qc+YB3fBjisTatkYW6P7dFPXYcQZPBmxVyUFj
|
59
|
+
BKtMXTWqTdUn3Q2evkdsBlacCkgjzsNOneK8P3iP7CRzl4+UlzjkTnXrqhSfbjyO
|
60
|
+
Hwq/N59l9ypInsH0MaayGXNiTbmfTb0qy8bFVXW2Y/hWyEydmLU65RaWCcxTyj6C
|
61
|
+
++S0/xuq02wBHwAx2oEugn7YpaG9XYX3IgH7d0abIwqhtOFmt//Jm/a+DRo50S4c
|
62
|
+
QEyp5SUFnFeZlfQMZx6wy9NKsCzNAgMBAAGjDTALMAkGA1UdEwQCMAAwDQYJKoZI
|
63
|
+
hvcNAQELBQADggEBACfGVmPVGMIy58J8RS0VAkin64r8onBl4c4v8vp4POBf+Gkf
|
64
|
+
pvHN1zL3RmB0vxhxgfRC2JChS4MHsNzJM4Sk6eSE6ZoCwniGvbmeMGPWl/OLzA/V
|
65
|
+
gdwFjAF6MFOrKjwjtaQW3BugNUe1LbVt2KHImH93qQA+nkTHddiRFVZ7xKR8DXM7
|
66
|
+
pppVWcLX9HENHkYO2gGfFdgCa+aFI2QcxdqzThgjM3mAyRzMNf0PN40SQGxdohbL
|
67
|
+
F+T3kLmPjqWrDshkhsOwZO9GeoIhqUuPvVqgtFSENiu8TjDjjP7qf0nC+y9afcYW
|
68
|
+
ekyK4+xodt6AIKv0dgknZSbhMZoCaq8IOapANkA=
|
18
69
|
-----END CERTIFICATE-----
|