logstash-mixin-rabbitmq_connection 5.0.0-java → 6.2.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-----
|