File: //usr/lib/python2.7/site-packages/lap/check_ssl_expira.py
from OpenSSL import SSL
import socket, datetime
def __run__(params):
try:
url = params.get("url", False)
#url = 'goog3232le.com'
warning = 90
critical = 60
resposta = ' '
porta = params.get("porta", False)
#porta = 443
data = datetime.datetime.utcnow()
if not url:
return ([2, 'VERIFIQUE SEU YAML --- URL NAO ENCONTRADA'])
else:
context = SSL.Context(SSL.SSLv23_METHOD)
sock = SSL.Connection(context, socket.socket(socket.AF_INET, socket.SOCK_STREAM))
try:
sock.connect((str(url), int(porta)))
sock.send('\x00')
certificado = sock.get_peer_certificate()
sock.close()
expiracao = datetime.datetime.strptime(certificado.get_notAfter(), '%Y%m%d%H%M%SZ')
vencidoEm = int((expiracao - data).days)
if vencidoEm < 0:
resposta = resposta + '%s : % CERTIFICADO VENCIDO' % (url, porta, vencidoEm)
return ([2, resposta])
elif warning > vencidoEm:
resposta = resposta + '%s : %s Expira em %s dias ' % (url, porta, vencidoEm)
return ([1, resposta])
else:
resposta = resposta + '%s : %s certificado OK - Expira em %s dias' % (url, porta, vencidoEm)
return ([0, resposta])
except:
resposta = resposta + 'IMPOSSIVEL CONECTAR AO SITE : %s' %url
return ([1, resposta ])
except SSL.Error, erro:
return ([2, erro])