sensu-plugins-ssl 2.0.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b181365f3bc51a19d52e1eb96ec33c24d29cd9ff14e2f87bb38bd14629ea4a19
4
- data.tar.gz: 28a88e9032b84451e67c2f33d0b4d1dc0d09c569ed8611e2559d5ed11574e2c0
3
+ metadata.gz: 81a09f41b7a0220a938ceee8561f7433321376e5617e4c09fb65454476630d88
4
+ data.tar.gz: b0ecba81c6266494db6a0f8c9ecb50da9f8302bef75e6f5267ca6a79aa2c17b5
5
5
  SHA512:
6
- metadata.gz: 04777162b9953ca6a60507367c6e755f99a73f8a9ea185b722d29039a67dfd68e68ee055d292f26d94f4a5842031167aaf04b38d167266aec2bdf92627763044
7
- data.tar.gz: 1dcc031f2d8794fd983fd7bd749b550ff7b8e4442c85ce32d36ea2db1c945b3db3083bb347e6d57f1c34275594567e8b90cb05e79296ac6463be090646fb9bf9
6
+ metadata.gz: 7ba079ecb12548b22f684681ee0c077e965ac04a725623554a74b6fc45f009b1a72c3b1657d3ac69dbf58f213497bfee7b3e830dcc769c13c0eeb57fea9c56b9
7
+ data.tar.gz: 45ecf2194f83c759681b9e167a8c8d08e77a20e4691c2c432dc18b779bcd52d1b089fb148a758dd5a7f9e208cab6de8bf54e41a9c785de9eb5935d2155f3b22e
@@ -5,6 +5,25 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [3.0.0] - 2020-08-27
9
+ ### Breaking Changes
10
+ - Bump `sensu-plugin` dependency from `~> 1.2` to `~> 4.0` you can read the changelog entries for [4.0](https://github.com/sensu-plugins/sensu-plugin/blob/master/CHANGELOG.md#400---2018-02-17), [3.0](https://github.com/sensu-plugins/sensu-plugin/blob/master/CHANGELOG.md#300---2018-12-04), and [2.0](https://github.com/sensu-plugins/sensu-plugin/blob/master/CHANGELOG.md#v200---2017-03-29)
11
+ - Remove ruby-2.3.0. Upgrade bundler. Fix failing tests (@phumpal).
12
+
13
+ ### Added
14
+ - Travis build automation to generate Sensu Asset tarballs that can be used n conjunction with Sensu provided ruby runtime assets and the Bonsai Asset Index
15
+ - Require latest sensu-plugin for [Sensu Go support](https://github.com/sensu-plugins/sensu-plugin#sensu-go-enablement)
16
+ - New option to treat anchor argument as a regexp
17
+ - New Check plugin `check-ssl-root-issuer.rb` with alternative logic for trust anchor verification.
18
+
19
+ ### Changed
20
+ - `check-ssl-anchor.rb` uses regexp to test for present of certificates in cert chain that works with both openssl 1.0 and 1.1 formatting
21
+ - Upgrade rake and rubocop dependencies
22
+ - Remediate rubocop issues
23
+
24
+ ### Fixed
25
+ - ssl-anchor test now uses regexp
26
+
8
27
  ## [2.0.1] - 2018-05-30
9
28
  ### Fixed
10
29
  - `check-ssl-qualys.rb`: Fixed typo and removed timeout `-t` short option replacing it with `--timeout` as per previous changelog. `-t` conflicts with the short option for `--time-between`
@@ -110,7 +129,8 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
110
129
  ### Added
111
130
  - initial release
112
131
 
113
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/2.0.1...HEAD
132
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/3.0.0...HEAD
133
+ [3.0.0]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/2.0.1...3.0.0
114
134
  [2.0.1]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/2.0.0...2.0.1
115
135
  [2.0.0]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/1.5.0...2.0.0
116
136
  [1.5.0]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/1.4.0...1.5.0
data/README.md CHANGED
@@ -5,7 +5,10 @@
5
5
  [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ssl/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ssl)
6
6
  [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ssl/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ssl)
7
7
  [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-ssl.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-ssl)
8
+ [![Sensu Bonsai Asset](https://img.shields.io/badge/Bonsai-Download%20Me-brightgreen.svg?colorB=89C967&logo=sensu)](https://bonsai.sensu.io/assets/sensu-plugins/sensu-plugins-ssl)
8
9
 
10
+ ## Sensu Asset
11
+ The Sensu assets packaged from this repository are built against the Sensu Ruby runtime environment. When using these assets as part of a Sensu Go resource (check, mutator or handler), make sure you include the corresponding Sensu Ruby runtime asset in the list of assets needed by the resource. The current ruby-runtime assets can be found [here](https://bonsai.sensu.io/assets/sensu/sensu-ruby-runtime) in the [Bonsai Asset Index](bonsai.sensu.io).
9
12
  ## Functionality
10
13
 
11
14
  ## Files
@@ -17,12 +20,13 @@
17
20
  * bin/check-ssl-hsts-preload.rb
18
21
  * bin/check-ssl-hsts-preloadable.rb
19
22
  * bin/check-ssl-qualys.rb
23
+ * bin/check-ssl-root-issuer.rb
20
24
 
21
25
  ## Usage
22
26
 
23
27
  ### `bin/check-ssl-anchor.rb`
24
28
 
25
- Check that a specific website is chained to a specific root certificate (Let's Encrypt for instance).
29
+ Check that a specific website is chained to a specific root certificate (Let's Encrypt for instance). Requires the `openssl` commandline tool to be available on the system.
26
30
 
27
31
  ```
28
32
  ./bin/check-ssl-anchor.rb -u example.com -a "i:/O=Digital Signature Trust Co./CN=DST Root CA X3"
@@ -53,6 +57,13 @@ Checks the ssllabs qualysis api for grade of your server, this check can be quit
53
57
  ./bin/check-ssl-qualys.rb -d google.com
54
58
  ```
55
59
 
60
+ ### `bin/check-ssl-root-issuer.rb`
61
+
62
+ Check that a specific website is chained to a specific root certificate issuer. This is a pure Ruby implementation, does not require the openssl cmdline client tool to be installed.
63
+
64
+ ```
65
+ ./bin/check-ssl-root-issuer.rb -u example.com -a "CN=DST Root CA X3,O=Digital Signature Trust Co."
66
+ ```
56
67
 
57
68
  ## Installation
58
69
 
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: false
3
+
2
4
  #
3
5
  # check-java-keystore-cert
4
6
  #
@@ -75,7 +77,7 @@ class CheckJavaKeystoreCert < Sensu::Plugin::Check::CLI
75
77
 
76
78
  days_until = (certificate_expiration_date - Date.today).to_i
77
79
 
78
- if days_until < 0
80
+ if days_until < 0 # rubocop: disable Style/NumericPredicate
79
81
  critical "Expired #{days_until.abs} days ago"
80
82
  elsif days_until < config[:critical]
81
83
  critical "#{days_until} days left"
@@ -1,4 +1,6 @@
1
1
  #! /usr/bin/env ruby
2
+ # frozen_string_literal: false
3
+
2
4
  #
3
5
  # check-ssl-anchor
4
6
  #
@@ -57,6 +59,14 @@ class CheckSSLAnchor < Sensu::Plugin::Check::CLI
57
59
  long: '--anchor ANCHOR_VAL',
58
60
  required: true
59
61
 
62
+ option :regexp,
63
+ description: 'Treat the anchor as a regexp',
64
+ short: '-r',
65
+ long: '--regexp',
66
+ default: false,
67
+ boolean: true,
68
+ required: false
69
+
60
70
  option :servername,
61
71
  description: 'Set the TLS SNI (Server Name Indication) extension',
62
72
  short: '-s',
@@ -79,7 +89,7 @@ class CheckSSLAnchor < Sensu::Plugin::Check::CLI
79
89
  -servername #{config[:servername]} < /dev/null 2>&1`.match(/Certificate chain(.*)---\nServer certificate/m)[1].split(/$/).map(&:strip)
80
90
  data = data.reject(&:empty?)
81
91
 
82
- unless data[0] =~ /0 s:\/CN=.*/m
92
+ unless data[0] =~ /0 s:\/?CN ?=.*/m
83
93
  data = 'NOTOK'
84
94
  end
85
95
  data
@@ -91,11 +101,22 @@ class CheckSSLAnchor < Sensu::Plugin::Check::CLI
91
101
  if data == 'NOTOK'
92
102
  critical 'An error was encountered while trying to retrieve the certificate chain.'
93
103
  end
94
-
95
- if data[-1] == config[:anchor].to_s
96
- ok 'Root anchor has been found.'
104
+ puts config[:regexp]
105
+ # rubocop:disable Style/IfInsideElse
106
+ if config[:regexp]
107
+ anchor_regexp = Regexp.new(config[:anchor].to_s)
108
+ if data[-1] =~ anchor_regexp
109
+ ok 'Root anchor has been found.'
110
+ else
111
+ critical 'Root anchor did not match regexp /' + config[:anchor].to_s + "/\nFound \"" + data[-1] + '" instead.'
112
+ end
97
113
  else
98
- critical 'Root anchor did not match. Found "' + data[-1] + '" instead.'
114
+ if data[-1] == config[:anchor].to_s
115
+ ok 'Root anchor has been found.'
116
+ else
117
+ critical 'Root anchor did not match string "' + config[:anchor].to_s + "\"\nFound \"" + data[-1] + '" instead.'
118
+ end
99
119
  end
120
+ # rubocop:enable Style/IfInsideElse
100
121
  end
101
122
  end
@@ -1,4 +1,6 @@
1
1
  #! /usr/bin/env ruby
2
+ # frozen_string_literal: false
3
+
2
4
  #
3
5
  # check-ssl-cert
4
6
  #
@@ -117,7 +119,7 @@ class CheckSSLCert < Sensu::Plugin::Check::CLI
117
119
 
118
120
  days_until = (Date.parse(expiry.to_s) - Date.today).to_i
119
121
 
120
- if days_until < 0
122
+ if days_until < 0 # rubocop:disable Style/NumericPredicate
121
123
  critical "Expired #{days_until.abs} days ago"
122
124
  elsif days_until < config[:critical].to_i
123
125
  critical "#{days_until} days left"
@@ -1,4 +1,6 @@
1
1
  #! /usr/bin/env ruby
2
+ # frozen_string_literal: false
3
+
2
4
  #
3
5
  # check-ssl-crl
4
6
  #
@@ -65,10 +67,10 @@ class CheckSSLCRL < Sensu::Plugin::Check::CLI
65
67
  def run
66
68
  validate_opts
67
69
 
68
- next_update = OpenSSL::X509::CRL.new(open(config[:url]).read).next_update
70
+ next_update = OpenSSL::X509::CRL.new(open(config[:url]).read).next_update # rubocop:disable Security/Open
69
71
  minutes_until = seconds_to_minutes(Time.parse(next_update.to_s) - Time.now)
70
72
 
71
- critical "#{config[:url]} - Expired #{minutes_until.abs} minutes ago" if minutes_until < 0
73
+ critical "#{config[:url]} - Expired #{minutes_until.abs} minutes ago" if minutes_until < 0 # rubocop:disable Style/NumericPredicate
72
74
  critical "#{config[:url]} - #{minutes_until} minutes left, next update at #{next_update}" if minutes_until < config[:critical].to_i
73
75
  warning "#{config[:url]} - #{minutes_until} minutes left, next update at #{next_update}" if minutes_until < config[:warning].to_i
74
76
  ok "#{config[:url]} - #{minutes_until} minutes left, next update at #{next_update}"
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: UTF-8
2
+ # frozen_string_literal: false
3
+
3
4
  # check-ssl-host.rb
4
5
  #
5
6
  # DESCRIPTION:
@@ -42,7 +43,7 @@ require 'socket'
42
43
  # Check SSL Host
43
44
  #
44
45
  class CheckSSLHost < Sensu::Plugin::Check::CLI
45
- STARTTLS_PROTOS = %w(smtp imap).freeze
46
+ STARTTLS_PROTOS = %w[smtp imap].freeze
46
47
 
47
48
  check_name 'check_ssl_host'
48
49
 
@@ -104,7 +105,7 @@ class CheckSSLHost < Sensu::Plugin::Check::CLI
104
105
  long: '--starttls PROTO'
105
106
 
106
107
  def get_cert_chain(host, port, address, client_cert, client_key)
107
- tcp_client = TCPSocket.new(address ? address : host, port)
108
+ tcp_client = TCPSocket.new(address ? address : host, port) # rubocop:disable Style/RedundantCondition
108
109
  handle_starttls(config[:starttls], tcp_client) if config[:starttls]
109
110
  ssl_context = OpenSSL::SSL::SSLContext.new
110
111
  ssl_context.cert = OpenSSL::X509::Certificate.new File.read(client_cert) if client_cert
@@ -139,6 +140,7 @@ class CheckSSLHost < Sensu::Plugin::Check::CLI
139
140
 
140
141
  status = socket.readline
141
142
  return if /^220 / =~ status
143
+
142
144
  critical "#{config[:host]} - did not receive SMTP 220 in response to STARTTLS"
143
145
  end
144
146
 
@@ -151,6 +153,7 @@ class CheckSSLHost < Sensu::Plugin::Check::CLI
151
153
 
152
154
  status = socket.readline
153
155
  return if /^a001 OK Begin TLS negotiation now/ =~ status
156
+
154
157
  critical "#{config[:host]} - did not receive OK Begin TLS negotiation now"
155
158
  end
156
159
 
@@ -158,7 +161,7 @@ class CheckSSLHost < Sensu::Plugin::Check::CLI
158
161
  # Expiry check
159
162
  days = (cert.not_after.to_date - Date.today).to_i
160
163
  message = "#{config[:host]} - #{days} days until expiry"
161
- critical "#{config[:host]} - Expired #{days} days ago" if days < 0
164
+ critical "#{config[:host]} - Expired #{days} days ago" if days < 0 # rubocop:disable Style/NumericPredicate
162
165
  critical message if days < config[:critical]
163
166
  warning message if days < config[:warning]
164
167
  ok message
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: UTF-8
2
+ # frozen_string_literal: false
3
+
3
4
  # check-ssl-hsts-preloadable.rb
4
5
  #
5
6
  # DESCRIPTION:
@@ -43,16 +44,16 @@ class CheckSSLHSTSPreloadable < Sensu::Plugin::Check::CLI
43
44
  default: 'https://hstspreload.org/api/v2/preloadable'
44
45
 
45
46
  def fetch(uri, limit = 10)
46
- if limit == 0
47
+ if limit == 0 # rubocop:disable Style/NumericPredicate
47
48
  return nil
48
49
  end
49
50
 
50
51
  response = Net::HTTP.get_response(uri)
51
52
 
52
53
  case response
53
- when Net::HTTPSuccess then
54
+ when Net::HTTPSuccess
54
55
  response
55
- when Net::HTTPRedirection then
56
+ when Net::HTTPRedirection
56
57
  location = URI(response['location'])
57
58
  fetch(location, limit - 1)
58
59
  end
@@ -65,6 +66,7 @@ class CheckSSLHSTSPreloadable < Sensu::Plugin::Check::CLI
65
66
  if response.nil?
66
67
  return warning 'Bad response recieved from API'
67
68
  end
69
+
68
70
  body = JSON.parse(response.body)
69
71
  if !body['errors'].empty?
70
72
  critical body['errors'].map { |u| u['summary'] }.join(', ')
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: UTF-8
2
+ # frozen_string_literal: false
3
+
3
4
  # check-ssl-hsts-preload.rb
4
5
  #
5
6
  # DESCRIPTION:
@@ -33,7 +34,7 @@ require 'json'
33
34
  require 'net/http'
34
35
 
35
36
  class CheckSSLHSTSStatus < Sensu::Plugin::Check::CLI
36
- STATUSES = %w(unknown pending preloaded).freeze
37
+ STATUSES = %w[unknown pending preloaded].freeze
37
38
 
38
39
  option :domain,
39
40
  description: 'The domain to run the test against',
@@ -61,16 +62,16 @@ class CheckSSLHSTSStatus < Sensu::Plugin::Check::CLI
61
62
  default: 'https://hstspreload.org/api/v2/status'
62
63
 
63
64
  def fetch(uri, limit = 10)
64
- if limit == 0
65
+ if limit == 0 # rubocop:disable Style/NumericPredicate
65
66
  return nil
66
67
  end
67
68
 
68
69
  response = Net::HTTP.get_response(uri)
69
70
 
70
71
  case response
71
- when Net::HTTPSuccess then
72
+ when Net::HTTPSuccess
72
73
  response
73
- when Net::HTTPRedirection then
74
+ when Net::HTTPRedirection
74
75
  location = URI(response['location'])
75
76
  fetch(location, limit - 1)
76
77
  end
@@ -83,6 +84,7 @@ class CheckSSLHSTSStatus < Sensu::Plugin::Check::CLI
83
84
  if response.nil?
84
85
  return warning 'Bad response recieved from API'
85
86
  end
87
+
86
88
  body = JSON.parse(response.body)
87
89
  unless STATUSES.include? body['status']
88
90
  warning 'Invalid status returned ' + body['status']
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: UTF-8
2
+ # frozen_string_literal: false
3
3
 
4
4
  # check-ssl-qualys.rb
5
5
  #
@@ -138,7 +138,8 @@ class CheckSSLQualys < Sensu::Plugin::Check::CLI
138
138
  ssl_check(true)
139
139
  end
140
140
  return json if json['status'] == 'READY'
141
- if json['endpoints'] && json['endpoints'].is_a?(Array)
141
+
142
+ if json['endpoints'] && json['endpoints'].is_a?(Array) # rubocop:disable Style/SafeNavigation
142
143
  p "endpoints: #{json['endpoints']}" if config[:debug]
143
144
  # The api response sometimes has low eta (which seems unrealistic) from
144
145
  # my tests that can be 0 or low numbers which would imply it is done...
@@ -0,0 +1,128 @@
1
+ #! /usr/bin/env ruby
2
+ # frozen_string_literal: false
3
+
4
+ #
5
+ # check-ssl-root-issuer
6
+ #
7
+ # DESCRIPTION:
8
+ # Check that a certificate is chained to a specific root certificate issuer
9
+ #
10
+ # OUTPUT:
11
+ # plain text
12
+ #
13
+ # PLATFORMS:
14
+ # Linux
15
+ #
16
+ # DEPENDENCIES:
17
+ # gem: sensu-plugin
18
+ #
19
+ # USAGE:
20
+ #
21
+ # Check that a specific website is chained to a specific root certificate
22
+ # ./check-ssl-root-issuer.rb \
23
+ # -u https://example.com \
24
+ # -i "CN=DST Root CA X3,O=Digital Signature Trust Co."
25
+ #
26
+ # LICENSE:
27
+ # Copyright Jef Spaleta (jspaleta@gmail.com) 2020
28
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
29
+ # for details.
30
+ #
31
+
32
+ require 'sensu-plugin/check/cli'
33
+ require 'openssl'
34
+ require 'uri'
35
+ require 'net/http'
36
+ require 'net/https'
37
+
38
+ #
39
+ # Check root certificate has specified issuer name
40
+ #
41
+ class CheckSSLRootIssuer < Sensu::Plugin::Check::CLI
42
+ option :url,
43
+ description: 'Url to check: Ex "https://google.com"',
44
+ short: '-u',
45
+ long: '--url URL',
46
+ required: true
47
+
48
+ option :issuer,
49
+ description: 'An X509 certificate issuer name, RFC2253 format Ex: "CN=DST Root CA X3,O=Digital Signature Trust Co."',
50
+ short: '-i',
51
+ long: '--issuer ISSUER_NAME',
52
+ required: true
53
+
54
+ option :regexp,
55
+ description: 'Treat the issuer name as a regexp',
56
+ short: '-r',
57
+ long: '--regexp',
58
+ default: false,
59
+ boolean: true,
60
+ required: false
61
+
62
+ option :format,
63
+ description: 'optional issuer name format.',
64
+ short: '-f',
65
+ long: '--format FORMAT_VAL',
66
+ default: 'RFC2253',
67
+ in: %w[RFC2253 ONELINE COMPAT],
68
+ required: false
69
+
70
+ def cert_name_format
71
+ # Note: because format argument is pre-validated by mixin 'in' logic eval is safe to use
72
+ eval "OpenSSL::X509::Name::#{config[:format]}" # rubocop:disable Security/Eval, Style/EvalWithLocation
73
+ end
74
+
75
+ def validate_issuer(cert)
76
+ issuer = cert.issuer.to_s(cert_name_format)
77
+ if config[:regexp]
78
+ issuer_regexp = Regexp.new(config[:issuer].to_s)
79
+ issuer =~ issuer_regexp
80
+ else
81
+ issuer == config[:issuer].to_s
82
+ end
83
+ end
84
+
85
+ def find_root_cert(uri)
86
+ root_cert = nil
87
+ http = Net::HTTP.new(uri.host, uri.port)
88
+ http.open_timeout = 10
89
+ http.read_timeout = 10
90
+ http.use_ssl = true
91
+ http.cert_store = OpenSSL::X509::Store.new
92
+ http.cert_store.set_default_paths
93
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
94
+
95
+ http.verify_callback = lambda { |verify_ok, store_context|
96
+ root_cert = store_context.current_cert unless root_cert # rubocop:disable Style/OrAssignment
97
+ unless verify_ok
98
+ @failed_cert = store_context.current_cert
99
+ @failed_cert_reason = [store_context.error, store_context.error_string] if store_context.error != 0
100
+ end
101
+ verify_ok
102
+ }
103
+ http.start {}
104
+ root_cert
105
+ end
106
+
107
+ # Do the actual work and massage some data
108
+
109
+ def run
110
+ @fail_cert = nil
111
+ @failed_cert_reason = 'Unknown'
112
+ uri = URI.parse(config[:url])
113
+ critical "url protocol must be https, you specified #{url}" if uri.scheme != 'https'
114
+ root_cert = find_root_cert(uri)
115
+ if @failed_cert
116
+ msg = "Certificate verification failed.\n Reason: #{@failed_cert_reason}"
117
+ critical msg
118
+ end
119
+
120
+ if validate_issuer(root_cert)
121
+ msg = 'Root certificate in chain has expected issuer name'
122
+ ok msg
123
+ else
124
+ msg = "Root certificate issuer did not match expected name.\nFound: \"#{root_cert.issuer.to_s(config[:issuer_format])}\""
125
+ critical msg
126
+ end
127
+ end
128
+ end
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sensu-plugins-ssl/version'
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SensuPluginsSSL
2
4
  module Version
3
- MAJOR = 2
5
+ MAJOR = 3
4
6
  MINOR = 0
5
- PATCH = 1
7
+ PATCH = 0
6
8
 
7
9
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-ssl
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-31 00:00:00.000000000 Z
11
+ date: 2020-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.2'
19
+ version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.2'
26
+ version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.7'
33
+ version: '2.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.7'
40
+ version: '2.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: codeclimate-test-reporter
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.3'
61
+ version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.3'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '10.0'
89
+ version: '13.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '10.0'
96
+ version: '13.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: redcarpet
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -128,55 +128,56 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.40.0
131
+ version: 0.89.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.40.0
138
+ version: 0.89.1
139
139
  - !ruby/object:Gem::Dependency
140
- name: yard
140
+ name: timecop
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0.8'
145
+ version: 0.8.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0.8'
152
+ version: 0.8.0
153
153
  - !ruby/object:Gem::Dependency
154
- name: timecop
154
+ name: yard
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.8.0
159
+ version: '0.8'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 0.8.0
166
+ version: '0.8'
167
167
  description: |-
168
168
  This plugin provides native SSL instrumentation
169
169
  for monitoring, including: hostname and chain
170
170
  verification, cert and crl expiry, and Qualys SSL Labs reporting
171
171
  email: "<sensu-users@googlegroups.com>"
172
172
  executables:
173
- - check-java-keystore-cert.rb
174
- - check-ssl-anchor.rb
173
+ - check-ssl-hsts-status.rb
174
+ - check-ssl-root-issuer.rb
175
175
  - check-ssl-cert.rb
176
+ - check-java-keystore-cert.rb
176
177
  - check-ssl-crl.rb
178
+ - check-ssl-anchor.rb
177
179
  - check-ssl-host.rb
178
180
  - check-ssl-hsts-preloadable.rb
179
- - check-ssl-hsts-status.rb
180
181
  - check-ssl-qualys.rb
181
182
  extensions: []
182
183
  extra_rdoc_files: []
@@ -192,6 +193,7 @@ files:
192
193
  - bin/check-ssl-hsts-preloadable.rb
193
194
  - bin/check-ssl-hsts-status.rb
194
195
  - bin/check-ssl-qualys.rb
196
+ - bin/check-ssl-root-issuer.rb
195
197
  - lib/sensu-plugins-ssl.rb
196
198
  - lib/sensu-plugins-ssl/version.rb
197
199
  homepage: https://github.com/sensu-plugins/sensu-plugins-ssl
@@ -212,15 +214,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
212
214
  requirements:
213
215
  - - ">="
214
216
  - !ruby/object:Gem::Version
215
- version: 2.0.0
217
+ version: 2.4.0
216
218
  required_rubygems_version: !ruby/object:Gem::Requirement
217
219
  requirements:
218
220
  - - ">="
219
221
  - !ruby/object:Gem::Version
220
222
  version: '0'
221
223
  requirements: []
222
- rubyforge_project:
223
- rubygems_version: 2.7.7
224
+ rubygems_version: 3.0.8
224
225
  signing_key:
225
226
  specification_version: 4
226
227
  summary: Sensu plugins for SSL