sensu-plugins-ssl 0.0.1.alpha.2
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 +7 -0
- checksums.yaml.gz.sig +1 -0
- data.tar.gz.sig +1 -0
- data/CHANGELOG.md +12 -0
- data/LICENSE +22 -0
- data/README.md +54 -0
- data/bin/check-ssl-cert.rb +97 -0
- data/bin/check-ssl-host.rb +133 -0
- data/lib/sensu-plugins-ssl.rb +15 -0
- data/lib/sensu-plugins-ssl/version.rb +28 -0
- metadata +216 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a5c3ae38975b113c0af5a4ef40399a279531617d
|
4
|
+
data.tar.gz: 2611fd5f9b5a8c5e4a09e34541baa7c444ef510c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3ec4ce9faafb0fc4eac90adfa3651599fe9de4486d233cb80ec58df38528ab6e94d7fda247ed47409d8a6b12dbbb008812cbef74181c49e868fc301acba39a1d
|
7
|
+
data.tar.gz: f6998bf1497f6f18f499579a5682bf6f35fc6be364d33cde56379ba838322abc5513f6fcf3c6747ad1a8620b83212c6c247e28d4ff7a01ac794e104a73ef1328
|
checksums.yaml.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
�n�[P�=�d���>V�}���V���ȾC�zML>Cx�^��I/�DmT��<ݝ���ch̏���Ŵ��J���!�(�H��&��I���E����ԱOg�7v�fc`��,u/]}���oe����rv���}ڻxCc�D�d��
|
data.tar.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
9��߆Do�ł���Af!�1������@8���l�o�|��PR�t�8=�,���@��F@���7#��
|
data/CHANGELOG.md
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 devops@yieldbot.com
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
## Sensu-Plugins-ssl
|
2
|
+
|
3
|
+
[](https://travis-ci.org/sensu-plugins/sensu-plugins-ssl)
|
4
|
+
[](http://badge.fury.io/rb/sensu-plugins-ssl)
|
5
|
+
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ssl)
|
6
|
+
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ssl)
|
7
|
+
[](https://gemnasium.com/sensu-plugins/sensu-plugins-ssl)
|
8
|
+
|
9
|
+
## Functionality
|
10
|
+
|
11
|
+
## Files
|
12
|
+
* bin/check-ssl-cert.rb
|
13
|
+
* bin/check-ssl-host.rb
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
## Installation
|
18
|
+
|
19
|
+
Add the public key (if you haven’t already) as a trusted certificate
|
20
|
+
|
21
|
+
```
|
22
|
+
gem cert --add <(curl -Ls https://raw.githubusercontent.com/sensu-plugins/sensu-plugins.github.io/master/certs/sensu-plugins.pem)
|
23
|
+
gem install sensu-plugins-ssl -P MediumSecurity
|
24
|
+
```
|
25
|
+
|
26
|
+
You can also download the key from /certs/ within each repository.
|
27
|
+
|
28
|
+
#### Rubygems
|
29
|
+
|
30
|
+
`gem install sensu-plugins-ssl`
|
31
|
+
|
32
|
+
#### Bundler
|
33
|
+
|
34
|
+
Add *sensu-plugins-ssl* to your Gemfile and run `bundle install` or `bundle update`
|
35
|
+
|
36
|
+
#### Chef
|
37
|
+
|
38
|
+
Using the Sensu **sensu_gem** LWRP
|
39
|
+
```
|
40
|
+
sensu_gem 'sensu-plugins-ssl' do
|
41
|
+
options('--prerelease')
|
42
|
+
version '0.0.1.alpha.1'
|
43
|
+
end
|
44
|
+
```
|
45
|
+
|
46
|
+
Using the Chef **gem_package** resource
|
47
|
+
```
|
48
|
+
gem_package 'sensu-plugins-ssl' do
|
49
|
+
options('--prerelease')
|
50
|
+
version '0.0.1.alpha.1'
|
51
|
+
end
|
52
|
+
```
|
53
|
+
|
54
|
+
## Notes
|
@@ -0,0 +1,97 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-ssl-cert
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# Check when a SSL certificate will expire.
|
7
|
+
#
|
8
|
+
# OUTPUT:
|
9
|
+
# plain text
|
10
|
+
#
|
11
|
+
# PLATFORMS:
|
12
|
+
# Linux
|
13
|
+
#
|
14
|
+
# DEPENDENCIES:
|
15
|
+
# gem: sensu-plugin
|
16
|
+
# gem: openssl
|
17
|
+
#
|
18
|
+
# USAGE:
|
19
|
+
# example commands
|
20
|
+
#
|
21
|
+
# NOTES:
|
22
|
+
# Does it behave differently on specific platforms, specific use cases, etc
|
23
|
+
#
|
24
|
+
# LICENSE:
|
25
|
+
# Jean-Francois Theroux <me@failshell.io>
|
26
|
+
# Nathan Williams <nath.e.will@gmail.com>
|
27
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
28
|
+
# for details.
|
29
|
+
#
|
30
|
+
|
31
|
+
require 'date'
|
32
|
+
require 'openssl'
|
33
|
+
require 'sensu-plugin/check/cli'
|
34
|
+
|
35
|
+
#
|
36
|
+
# Check SSL Cert
|
37
|
+
#
|
38
|
+
class CheckSSLCert < Sensu::Plugin::Check::CLI
|
39
|
+
option :critical,
|
40
|
+
description: 'Numbers of days left',
|
41
|
+
short: '-c',
|
42
|
+
long: '--critical DAYS',
|
43
|
+
required: true
|
44
|
+
|
45
|
+
option :warning,
|
46
|
+
description: 'Numbers of days left',
|
47
|
+
short: '-w',
|
48
|
+
long: '--warning DAYS',
|
49
|
+
required: true
|
50
|
+
|
51
|
+
option :pem,
|
52
|
+
description: 'Path to PEM file',
|
53
|
+
short: '-P',
|
54
|
+
long: '--pem PEM'
|
55
|
+
|
56
|
+
option :host,
|
57
|
+
description: 'Host to validate',
|
58
|
+
short: '-h',
|
59
|
+
long: '--host HOST'
|
60
|
+
|
61
|
+
option :port,
|
62
|
+
description: 'Port to validate',
|
63
|
+
short: '-p',
|
64
|
+
long: '--port PORT'
|
65
|
+
|
66
|
+
def ssl_cert_expiry
|
67
|
+
`openssl s_client -connect #{config[:host]}:#{config[:port]} < /dev/null 2>&1 | openssl x509 -enddate -noout`.split('=').last
|
68
|
+
end
|
69
|
+
|
70
|
+
def ssl_pem_expiry
|
71
|
+
OpenSSL::X509::Certificate.new(File.read config[:pem]).not_after
|
72
|
+
end
|
73
|
+
|
74
|
+
def validate_opts
|
75
|
+
if !config[:pem]
|
76
|
+
unknown 'Host and port required' unless config[:host] && config[:port]
|
77
|
+
elsif config[:pem]
|
78
|
+
unknown 'No such cert' unless File.exist? config[:pem]
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def run # rubocop:disable all
|
83
|
+
validate_opts
|
84
|
+
expiry = config[:pem] ? ssl_pem_expiry : ssl_cert_expiry
|
85
|
+
days_until = (Date.parse(expiry.to_s) - Date.today).to_i
|
86
|
+
|
87
|
+
if days_until < 0
|
88
|
+
critical "Expired #{days_until.abs} days ago"
|
89
|
+
elsif days_until < config[:critical].to_i
|
90
|
+
critical "#{days_until} days left"
|
91
|
+
elsif days_until < config[:warning].to_i
|
92
|
+
warning "#{days_until} days left"
|
93
|
+
else
|
94
|
+
ok "#{days_until} days left"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,133 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: UTF-8
|
3
|
+
# check-ssl-host.rb
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# SSL certificate checker
|
7
|
+
# Connects to a HTTPS (or other SSL) server and performs several checks on
|
8
|
+
# the certificate:
|
9
|
+
# - Is the hostname valid for the host we're requesting
|
10
|
+
# - If any certificate chain is presented, is it valid (i.e. is each
|
11
|
+
# certificate signed by the next)
|
12
|
+
# - Is the certificate about to expire
|
13
|
+
# Currently no checks are performed to make sure the certificate is signed
|
14
|
+
# by a trusted authority.
|
15
|
+
#
|
16
|
+
# DEPENDENCIES:
|
17
|
+
# gem: sensu-plugin
|
18
|
+
#
|
19
|
+
# USAGE:
|
20
|
+
# # Basic usage
|
21
|
+
# check-ssl-host.rb -h <hostname>
|
22
|
+
# # Specify specific days before cert expiry to alert on
|
23
|
+
# check-ssl-host.rb -h <hostmame> -c <critical_days> -w <warning_days>
|
24
|
+
# # Use -p to specify an alternate port
|
25
|
+
# check-ssl-host.rb -h <hostname> -p 8443
|
26
|
+
# # Use --skip-hostname-verification and/or --skip-chain-verification to
|
27
|
+
# # disable some of the checks made.
|
28
|
+
# check-ssl-host.rb -h <hostname> --skip-chain-verification
|
29
|
+
#
|
30
|
+
# LICENSE:
|
31
|
+
# Copyright 2014 Chef Software, Inc.
|
32
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE for
|
33
|
+
# details.
|
34
|
+
#
|
35
|
+
|
36
|
+
require 'sensu-plugin/check/cli'
|
37
|
+
require 'date'
|
38
|
+
require 'openssl'
|
39
|
+
require 'socket'
|
40
|
+
|
41
|
+
#
|
42
|
+
# Check SSL Host
|
43
|
+
#
|
44
|
+
class CheckSSLHost < Sensu::Plugin::Check::CLI
|
45
|
+
check_name 'check_ssl_host'
|
46
|
+
|
47
|
+
option :critical,
|
48
|
+
description: 'Return critical this many days before cert expiry',
|
49
|
+
short: '-c',
|
50
|
+
long: '--critical DAYS',
|
51
|
+
proc: proc(&:to_i),
|
52
|
+
default: 7
|
53
|
+
|
54
|
+
option :warning,
|
55
|
+
description: 'Return warning this many days before cert expiry',
|
56
|
+
short: '-w',
|
57
|
+
long: '--warning DAYS',
|
58
|
+
required: true,
|
59
|
+
proc: proc(&:to_i),
|
60
|
+
default: 14
|
61
|
+
|
62
|
+
option :host,
|
63
|
+
description: 'Hostname of server to check',
|
64
|
+
short: '-h',
|
65
|
+
long: '--host HOST',
|
66
|
+
required: true
|
67
|
+
|
68
|
+
option :port,
|
69
|
+
description: 'Port on server to check',
|
70
|
+
short: '-p',
|
71
|
+
long: '--port PORT',
|
72
|
+
default: 443
|
73
|
+
|
74
|
+
option :skip_hostname_verification,
|
75
|
+
description: 'Disables hostname verification',
|
76
|
+
long: '--skip-hostname-verification',
|
77
|
+
boolean: true
|
78
|
+
|
79
|
+
option :skip_chain_verification,
|
80
|
+
description: 'Disables certificate chain verification',
|
81
|
+
long: '--skip-chain-verification',
|
82
|
+
boolean: true
|
83
|
+
|
84
|
+
def get_cert_chain(host, port)
|
85
|
+
tcp_client = TCPSocket.new(host, port)
|
86
|
+
ssl_context = OpenSSL::SSL::SSLContext.new
|
87
|
+
ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client, ssl_context)
|
88
|
+
# SNI
|
89
|
+
ssl_client.hostname = host if ssl_client.respond_to? :hostname=
|
90
|
+
ssl_client.connect
|
91
|
+
certs = ssl_client.peer_cert_chain
|
92
|
+
ssl_client.close
|
93
|
+
certs
|
94
|
+
end
|
95
|
+
|
96
|
+
def verify_expiry(cert) # rubocop:disable all
|
97
|
+
# Expiry check
|
98
|
+
days = (cert.not_after.to_date - Date.today).to_i
|
99
|
+
message = "#{config[:host]} - #{days} days until expiry"
|
100
|
+
critical "#{config[:host]} - Expired #{days} days ago" if days < 0
|
101
|
+
critical message if days < config[:critical]
|
102
|
+
warning message if days < config[:warning]
|
103
|
+
ok message
|
104
|
+
end
|
105
|
+
|
106
|
+
def verify_certificate_chain(certs)
|
107
|
+
# Validates that a chain of certs are each signed by the next
|
108
|
+
# NOTE: doesn't validate that the top of the chain is signed by a trusted
|
109
|
+
# CA.
|
110
|
+
valid = true
|
111
|
+
parent = nil
|
112
|
+
certs.reverse.each do |c|
|
113
|
+
if parent
|
114
|
+
valid &= c.verify(parent.public_key)
|
115
|
+
end
|
116
|
+
parent = c
|
117
|
+
end
|
118
|
+
critical "#{config[:host]} - Invalid certificate chain" unless valid
|
119
|
+
end
|
120
|
+
|
121
|
+
def verify_hostname(cert)
|
122
|
+
unless OpenSSL::SSL.verify_certificate_identity(cert, config[:host]) # rubocop:disable all
|
123
|
+
critical "#{config[:host]} hostname mismatch (#{cert.subject})"
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
def run
|
128
|
+
chain = get_cert_chain(config[:host], config[:port])
|
129
|
+
verify_hostname(chain[0]) unless config[:skip_hostname_verification]
|
130
|
+
verify_certificate_chain(chain) unless config[:skip_chain_verification]
|
131
|
+
verify_expiry(chain[0])
|
132
|
+
end
|
133
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
# encoding: utf-8
|
4
|
+
module SensuPluginsSSL
|
5
|
+
# This defines the version of the gem
|
6
|
+
module Version
|
7
|
+
MAJOR = 0
|
8
|
+
MINOR = 0
|
9
|
+
PATCH = 1
|
10
|
+
|
11
|
+
VER_STRING = [MAJOR, MINOR, PATCH, 'alpha.2'].compact.join('.')
|
12
|
+
|
13
|
+
NAME = 'sensu-plugins-ssl'
|
14
|
+
BANNER = "#{NAME} v%s"
|
15
|
+
|
16
|
+
module_function
|
17
|
+
|
18
|
+
def version
|
19
|
+
format(BANNER, VER_STRING)
|
20
|
+
end
|
21
|
+
|
22
|
+
def json_version
|
23
|
+
{
|
24
|
+
'version' => VER_STRING
|
25
|
+
}.to_json
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,216 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sensu-plugins-ssl
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.alpha.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yieldbot, Inc. and contributors
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRIwEAYDVQQDDAltYXR0
|
14
|
+
am9uZXMxGDAWBgoJkiaJk/IsZAEZFgh5aWVsZGJvdDETMBEGCgmSJomT8ixkARkW
|
15
|
+
A2NvbTAeFw0xNTAxMjgyMTAyNTFaFw0xNjAxMjgyMTAyNTFaMEMxEjAQBgNVBAMM
|
16
|
+
CW1hdHRqb25lczEYMBYGCgmSJomT8ixkARkWCHlpZWxkYm90MRMwEQYKCZImiZPy
|
17
|
+
LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTSzVYnO
|
18
|
+
CLgyrIyT1mBQakArQyW8xhi6MlDqyzXHJGeERT790U6EgoBVeS4XoK0ptFZNR8Tf
|
19
|
+
zko0w+Nv47TarSCgkPOaxY+mxWnAVR10dOmfeLr7huiMyps+YD56/EF2FqQ3jf/+
|
20
|
+
qohENfKD91qy1ieEy+Fn7Pf74ltbNKUdkb9a9eFXQ0DQ4ip5vik7DzjQkUTj4lca
|
21
|
+
k6ArwnmHX4YDhZoYtrQJ8jVktN0/+NtA40M5qkCYHNe5tUW25b/tKVYuioxG6b2Z
|
22
|
+
oIzaZxRLxf6HVAWpCVRT/F5+/yjigkX4u++eYacfLGleXQzoK7BL65vHGMJygWEE
|
23
|
+
0TKGqFOrl/L0AQIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
|
24
|
+
HQ4EFgQUEf6a8Td7MrSZc8ImbLFZAENPbz0wIQYDVR0RBBowGIEWbWF0dGpvbmVz
|
25
|
+
QHlpZWxkYm90LmNvbTAhBgNVHRIEGjAYgRZtYXR0am9uZXNAeWllbGRib3QuY29t
|
26
|
+
MA0GCSqGSIb3DQEBBQUAA4IBAQBbzXAYA3BVGw8DZ0YYoY1VHPNEcH5qPIApmHO8
|
27
|
+
rvSmuUT0yMEi7u00H/5uHRFf4LleGT/+sTdyXKsNPGT9kdRuQEgwi+vf7Zfvd8aX
|
28
|
+
UF/+4VkEYf/8rV8Ere6u2QaWPgApdMV6JjKr1fAwCTd8AuGXNaWItiPPMseSQzLJ
|
29
|
+
JKP4hVvbc1d+oS925B1lcBiqn2aYvElbyNAVmQPywNNqkWmvtlqj9ZVJfV5HQLdu
|
30
|
+
8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
|
31
|
+
HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
|
32
|
+
-----END CERTIFICATE-----
|
33
|
+
date: 2015-04-07 00:00:00.000000000 Z
|
34
|
+
dependencies:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: sensu-plugin
|
37
|
+
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 1.1.0
|
42
|
+
type: :runtime
|
43
|
+
prerelease: false
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.1.0
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: codeclimate-test-reporter
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0.4'
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0.4'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: rubocop
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.17.0
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - '='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 0.17.0
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
name: rspec
|
79
|
+
requirement: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '3.1'
|
84
|
+
type: :development
|
85
|
+
prerelease: false
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '3.1'
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: bundler
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '1.7'
|
98
|
+
type: :development
|
99
|
+
prerelease: false
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '1.7'
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: rake
|
107
|
+
requirement: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '10.0'
|
112
|
+
type: :development
|
113
|
+
prerelease: false
|
114
|
+
version_requirements: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '10.0'
|
119
|
+
- !ruby/object:Gem::Dependency
|
120
|
+
name: github-markup
|
121
|
+
requirement: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '1.3'
|
126
|
+
type: :development
|
127
|
+
prerelease: false
|
128
|
+
version_requirements: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '1.3'
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: redcarpet
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '3.2'
|
140
|
+
type: :development
|
141
|
+
prerelease: false
|
142
|
+
version_requirements: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '3.2'
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
name: yard
|
149
|
+
requirement: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0.8'
|
154
|
+
type: :development
|
155
|
+
prerelease: false
|
156
|
+
version_requirements: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - "~>"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0.8'
|
161
|
+
- !ruby/object:Gem::Dependency
|
162
|
+
name: pry
|
163
|
+
requirement: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - "~>"
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0.10'
|
168
|
+
type: :development
|
169
|
+
prerelease: false
|
170
|
+
version_requirements: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - "~>"
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0.10'
|
175
|
+
description: Sensu plugins for checking ssl
|
176
|
+
email: "<sensu-users@googlegroups.com>"
|
177
|
+
executables: []
|
178
|
+
extensions: []
|
179
|
+
extra_rdoc_files: []
|
180
|
+
files:
|
181
|
+
- CHANGELOG.md
|
182
|
+
- LICENSE
|
183
|
+
- README.md
|
184
|
+
- bin/check-ssl-cert.rb
|
185
|
+
- bin/check-ssl-host.rb
|
186
|
+
- lib/sensu-plugins-ssl.rb
|
187
|
+
- lib/sensu-plugins-ssl/version.rb
|
188
|
+
homepage: https://github.com/sensu-plugins/sensu-plugins-ssl
|
189
|
+
licenses:
|
190
|
+
- MIT
|
191
|
+
metadata:
|
192
|
+
maintainer: ''
|
193
|
+
development_status: active
|
194
|
+
production_status: unstable - testing recommended
|
195
|
+
post_install_message:
|
196
|
+
rdoc_options: []
|
197
|
+
require_paths:
|
198
|
+
- lib
|
199
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - ">="
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: 1.9.3
|
204
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 1.3.1
|
209
|
+
requirements: []
|
210
|
+
rubyforge_project:
|
211
|
+
rubygems_version: 2.2.2
|
212
|
+
signing_key:
|
213
|
+
specification_version: 4
|
214
|
+
summary: Sensu plugins for checking ssl
|
215
|
+
test_files: []
|
216
|
+
has_rdoc:
|
metadata.gz.sig
ADDED
Binary file
|