Plugin python pour monitorer les certificats SSL #11

Open
opened 2 years ago by bendia · 3 comments
bendia commented 2 years ago
Owner

Dans la version de Debian Buster de Netdata, il n'y a rien permettant de monitorter les certificats SSL. Il semble que ça existe, mais en Go (est-ce packagé pour les versions supérieur,je ne sais pas, mais ça sera du Go).

Il est cepandant possible de créer ses propres plugins. Ça semble possible en bash ou en python.

De mon coté j'ai regardé comment récupérer le nombre de jour avant l'expiration d'un certificat

#!/usr/bin/env python3

import socket
import ssl

from datetime import datetime
hostname = 'www.python.org'
context = ssl.create_default_context()

with socket.create_connection((hostname, 443)) as sock:
    with context.wrap_socket(sock, server_hostname=hostname) as ssock:
        data = ssock.getpeercert()

notAfter = datetime.fromtimestamp(ssl.cert_time_to_seconds(data['notAfter']))
print(notAfter)

now = datetime.now()
print(now)
duree= notAfter-now
print(duree.days)

Il ne reste plus qu'à intégrer ça dans un plugin.

@vv222 si tu veux intégrer ça en shell faut pas hesiter non plus 😉

Dans la version de Debian Buster de Netdata, il n'y a rien permettant de monitorter les certificats SSL. Il semble que ça existe, mais en Go (est-ce packagé pour les versions supérieur,je ne sais pas, mais ça sera du Go). Il est cepandant possible de créer ses propres plugins. Ça semble possible [en bash](https://github.com/netdata/netdata/blob/v1.12.2/collectors/charts.d.plugin/example/example.chart.sh) ou en python. De mon coté j'ai regardé comment récupérer le nombre de jour avant l'expiration d'un certificat ``` #!/usr/bin/env python3 import socket import ssl from datetime import datetime hostname = 'www.python.org' context = ssl.create_default_context() with socket.create_connection((hostname, 443)) as sock: with context.wrap_socket(sock, server_hostname=hostname) as ssock: data = ssock.getpeercert() notAfter = datetime.fromtimestamp(ssl.cert_time_to_seconds(data['notAfter'])) print(notAfter) now = datetime.now() print(now) duree= notAfter-now print(duree.days) ``` Il ne reste plus qu'à intégrer ça [dans un plugin](https://github.com/netdata/netdata/blob/v1.12.2/collectors/python.d.plugin/#how-to-write-a-new-module). @vv222 si tu veux intégrer ça en shell faut pas hesiter non plus :wink:
bendia added the
enhancement
label 2 years ago
bendia added a new dependency 2 years ago
Owner

un script shell pour ma part surveillera les certificats dans icinga2

un script shell pour ma part surveillera les certificats dans icinga2
Owner
OK - Certificat(s) à jour
OK   - /var/lib/dehydrated/certs/mail.debian-facile.org/cert.pem - 72 jours restants
OK   - /var/lib/dehydrated/certs/images.debian-facile.org/cert.pem - 72 jours restants
OK   - /var/lib/dehydrated/certs/http.debian-facile.org/cert.pem - 65 jours restants

si ça te va ?

``` OK - Certificat(s) à jour OK - /var/lib/dehydrated/certs/mail.debian-facile.org/cert.pem - 72 jours restants OK - /var/lib/dehydrated/certs/images.debian-facile.org/cert.pem - 72 jours restants OK - /var/lib/dehydrated/certs/http.debian-facile.org/cert.pem - 65 jours restants ``` si ça te va ?
Poster
Owner

Au poil pour moi.

Au poil pour moi.
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Blocks
#9 Contrôler les certificats SSL
Debian-Facile/Monitoring
Loading…
There is no content yet.