sensu-plugins-ssl 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: 730401068603b4e4f95fd83600bd49736fe9f663
4
- data.tar.gz: faecc1987c6a5be33f93bcfb7f016f326846f70a
3
+ metadata.gz: 4ae6462ba9f5b5a362400ccca8f9e716d910b62f
4
+ data.tar.gz: d4e4b84ed29ad5d43affed4779de59b89ca42aa2
5
5
  SHA512:
6
- metadata.gz: 08c83077b37e649c37158b8de4938caef4489c30b395f70aede52051c20b01543c09aad0100f264694501365dd54208ea9c0e68253e334025695d6b7a2055836
7
- data.tar.gz: 3b79980303443dbadf9217e36e86103aa5ba54848577c45353dc5864259298fa772359b5bc3261fb28eafb9d3ce423518c3f8f20ce7843b7108e163fee99ee1d
6
+ metadata.gz: 94ba8727dd0c5874d1076dfa76f5b8baa768cdcafb2b4f446c9c4d2b0a8df46793479f76901c0d9f37374bb16102572d4cdf7864788f695a142b20838cb3b067
7
+ data.tar.gz: 3637b2b08adf11810f7c40dd98818b329d2c74cdaf0cbe68b5a64823f8be2a70cfc138777b50363aefe4d13e4da16ad1d004958c7c4db3ddc94fb061c78760df
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
6
  ## [Unreleased][unreleased]
7
+ - nothing
8
+
9
+ ## [0.0.5] - 2015-08-05
10
+ ### Changed
11
+ - updated sensu-plugin gem to 1.2.0
12
+
13
+ ### Added
14
+ - Basic support for STARTTLS negotiation (only SMTP to start with)
7
15
 
8
16
  ## [0.0.4] - 2015-07-14
9
17
  ### Changed
@@ -23,3 +31,9 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
23
31
  ## 0.0.1 - 2015-05-21
24
32
  ### Added
25
33
  - initial release
34
+
35
+ [unreleased]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/0.0.4...HEAD
36
+ [0.0.5]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/0.0.4...0.0.5
37
+ [0.0.4]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/0.0.3...0.0.4
38
+ [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/0.0.2...0.0.3
39
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-ssl/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -18,6 +18,6 @@
18
18
 
19
19
  ## Installation
20
20
 
21
- [Installation and Setup](https://github.com/sensu-plugins/documentation/blob/master/user_docs/installation_instructions.md)
21
+ [Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)
22
22
 
23
23
  ## Notes
@@ -79,7 +79,7 @@ class CheckSSLCert < Sensu::Plugin::Check::CLI
79
79
  end
80
80
  end
81
81
 
82
- def run # rubocop:disable all
82
+ def run
83
83
  validate_opts
84
84
  expiry = config[:pem] ? ssl_pem_expiry : ssl_cert_expiry
85
85
  days_until = (Date.parse(expiry.to_s) - Date.today).to_i
@@ -42,6 +42,8 @@ require 'socket'
42
42
  # Check SSL Host
43
43
  #
44
44
  class CheckSSLHost < Sensu::Plugin::Check::CLI
45
+ STARTTLS_PROTOS = %w(smtp)
46
+
45
47
  check_name 'check_ssl_host'
46
48
 
47
49
  option :critical,
@@ -81,8 +83,14 @@ class CheckSSLHost < Sensu::Plugin::Check::CLI
81
83
  long: '--skip-chain-verification',
82
84
  boolean: true
83
85
 
86
+ option :starttls,
87
+ description: 'use STARTTLS negotiation for the given protocol '\
88
+ "(#{STARTTLS_PROTOS.join(', ')})",
89
+ long: '--starttls PROTO'
90
+
84
91
  def get_cert_chain(host, port)
85
92
  tcp_client = TCPSocket.new(host, port)
93
+ handle_starttls(config[:starttls], tcp_client) if config[:starttls]
86
94
  ssl_context = OpenSSL::SSL::SSLContext.new
87
95
  ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client, ssl_context)
88
96
  # SNI
@@ -93,7 +101,28 @@ class CheckSSLHost < Sensu::Plugin::Check::CLI
93
101
  certs
94
102
  end
95
103
 
96
- def verify_expiry(cert) # rubocop:disable all
104
+ def handle_starttls(proto, socket)
105
+ if STARTTLS_PROTOS.include?(proto)
106
+ send("starttls_#{proto}", socket)
107
+ else
108
+ fail ArgumentError, "STARTTLS supported only for #{STARTTLS_PROTOS.join(', ')}"
109
+ end
110
+ end
111
+
112
+ def starttls_smtp(socket)
113
+ status = socket.readline
114
+ unless /^220 /.match(status)
115
+ critical "#{config[:host]} - did not receive initial SMTP 220"
116
+ # no fall-through
117
+ end
118
+ socket.puts 'STARTTLS'
119
+
120
+ status = socket.readline
121
+ return if /^220 /.match(status)
122
+ critical "#{config[:host]} - did not receive SMTP 220 in response to STARTTLS"
123
+ end
124
+
125
+ def verify_expiry(cert)
97
126
  # Expiry check
98
127
  days = (cert.not_after.to_date - Date.today).to_i
99
128
  message = "#{config[:host]} - #{days} days until expiry"
@@ -2,7 +2,7 @@ module SensuPluginsSSL
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- PATCH = 4
5
+ PATCH = 5
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-ssl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
@@ -30,7 +30,7 @@ cert_chain:
30
30
  8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
31
  HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
32
  -----END CERTIFICATE-----
33
- date: 2015-07-14 00:00:00.000000000 Z
33
+ date: 2015-08-05 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: sensu-plugin
@@ -47,61 +47,61 @@ dependencies:
47
47
  - !ruby/object:Gem::Version
48
48
  version: 1.2.0
49
49
  - !ruby/object:Gem::Dependency
50
- name: codeclimate-test-reporter
50
+ name: bundler
51
51
  requirement: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '0.4'
55
+ version: '1.7'
56
56
  type: :development
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '0.4'
62
+ version: '1.7'
63
63
  - !ruby/object:Gem::Dependency
64
- name: rubocop
64
+ name: codeclimate-test-reporter
65
65
  requirement: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '='
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '0.30'
69
+ version: '0.4'
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - '='
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0.30'
76
+ version: '0.4'
77
77
  - !ruby/object:Gem::Dependency
78
- name: rspec
78
+ name: github-markup
79
79
  requirement: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '3.1'
83
+ version: '1.3'
84
84
  type: :development
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '3.1'
90
+ version: '1.3'
91
91
  - !ruby/object:Gem::Dependency
92
- name: bundler
92
+ name: pry
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '1.7'
97
+ version: '0.10'
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '1.7'
104
+ version: '0.10'
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: rake
107
107
  requirement: !ruby/object:Gem::Requirement
@@ -117,62 +117,65 @@ dependencies:
117
117
  - !ruby/object:Gem::Version
118
118
  version: '10.0'
119
119
  - !ruby/object:Gem::Dependency
120
- name: github-markup
120
+ name: redcarpet
121
121
  requirement: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: '1.3'
125
+ version: '3.2'
126
126
  type: :development
127
127
  prerelease: false
128
128
  version_requirements: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - "~>"
131
131
  - !ruby/object:Gem::Version
132
- version: '1.3'
132
+ version: '3.2'
133
133
  - !ruby/object:Gem::Dependency
134
- name: redcarpet
134
+ name: rspec
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: '3.2'
139
+ version: '3.1'
140
140
  type: :development
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '3.2'
146
+ version: '3.1'
147
147
  - !ruby/object:Gem::Dependency
148
- name: yard
148
+ name: rubocop
149
149
  requirement: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - "~>"
151
+ - - '='
152
152
  - !ruby/object:Gem::Version
153
- version: '0.8'
153
+ version: 0.32.1
154
154
  type: :development
155
155
  prerelease: false
156
156
  version_requirements: !ruby/object:Gem::Requirement
157
157
  requirements:
158
- - - "~>"
158
+ - - '='
159
159
  - !ruby/object:Gem::Version
160
- version: '0.8'
160
+ version: 0.32.1
161
161
  - !ruby/object:Gem::Dependency
162
- name: pry
162
+ name: yard
163
163
  requirement: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: '0.10'
167
+ version: '0.8'
168
168
  type: :development
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - "~>"
173
173
  - !ruby/object:Gem::Version
174
- version: '0.10'
175
- description: Sensu plugins for SSL
174
+ version: '0.8'
175
+ description: |-
176
+ This plugin provides native SSL instrumentation
177
+ for monitoring, including: hostname and chain
178
+ verification, cert expiry, and Qualys SSL Labs reporting
176
179
  email: "<sensu-users@googlegroups.com>"
177
180
  executables:
178
181
  - check-ssl-qualys.rb
@@ -215,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
218
  version: '0'
216
219
  requirements: []
217
220
  rubyforge_project:
218
- rubygems_version: 2.4.6
221
+ rubygems_version: 2.4.8
219
222
  signing_key:
220
223
  specification_version: 4
221
224
  summary: Sensu plugins for SSL
metadata.gz.sig CHANGED
Binary file