n8n workflow - Aflopende SSL certificaten versturen in Slack bericht
In deze handleiding leggen we uit hoe je op basis van een Google sheet automatisch de status van SSL certificaten kunt controleren, en een bericht kunt posten in Slack op het moment dat deze binnen 7 dagen verlopen.
Download de volledige workflow hier
Benodigdheden
- Een n8n personal server of hoger (zie https://www.hoasted.com/hosting/n8n-vps/)
- Een Google sheet met daarin een kolom genaamd ‘Domein’, waar de domeinen welke je wilt controleren in vermeld staan
- Een Google Sheets API Client ID en Client Secret (meer uitleg in deze handleiding)
- Een Slack API key met rechten om te posten in een channel (meer uitleg in deze handleiding)
Trigger toevoegen
Om de workflow aan te roepen is een trigger nodig, waar we in dit geval een dagelijkse trigger voor gebruiken. Deze zal iedere dag om 10 uur in de ochtend starten, waarna de rest van de workflow in gang gezet zal worden.
Klik aan de rechterzijde op het + icoontje, en zoek hier naar ‘Schedule Trigger’. In dit geval stellen we het zo in dat deze eenmaal per dag draait, om 10 uur ‘s ochtends.
Domeinen uitlezen vanuit een Google Sheet
Om de lijst met domeinnamen welke de workflow dient te controleren op te halen gebruiken we in dit geval een Google Sheet. Hier kan eventueel ook een Notion document, of een andere lijst naar wens voor gebruikt worden.
Voeg een Google Sheet node toe met de actie ‘Get row(s) in sheet’.
Open de node en selecteer de credentials, of maak nieuwe credentials aan (zie ook deze handleiding voor het aanmaken van nieuwe Google Sheet API credentials)
In dit voorbeeld gebruiken we een simpele sheet met enkel een kolom genaamd ‘Domein’, waar de lijst van domeinnamen in vermeld worden.
Configureer de Google Sheet node zodat deze het juiste document opent, en selecteer de bijbehorende sheet.
Zodra je deze node uitvoert zal aan de rechterzijde een overzicht van de domeinnamen komen te staan welke in de sheet aanwezig zijn.
Controleer de SSL status via de ssl-checker.io API
Voeg een ‘HTTP request’ node toe aan de workflow, en maak hierbij een request naar onderstaande link. Mocht je in de sheet een andere kolom naam dan ‘Domein’ gebruiken, vergeet deze dan niet in het request aan te passen.
https://ssl-checker.io/api/v1/check/{{ $json.Domein.replace(/^https?:\/\//, "").replace(/\/$/, "") }}
Zodra je deze node execute zal aan de rechterzijde alle beschikbare SSL data komen te staan.
Controleer of het certificaat binnen 7 dagen verloopt
Voeg een ‘IF’ node toe, en controleer daar of het ‘days_left’ veld lager of gelijk is aan 7 (dagen).
Let op: In ons voorbeeld zijn de SSL certificaten up to date, waardoor we de output enkel in de ‘False’ branche zien. Wanneer er certificaten zijn welke binnen 7 dagen verlopen kun je deze in de ‘True’ branch vinden.
Verzend een Slack notificatie
Om de notificaties te versturen kun je de ‘True’ branch linken aan een nieuwe ‘Slack’ node. Op die manier zal deze gestart worden op het moment dat er certificaten zijn welke binnen 7 dagen verlopen.
Meer informatie over het aanmaken van deze credentials kun je vinden in onze handleiding over het aanmaken van de Slack API.
Zodra dit is voltooid is de workflow af! Iedere ochtend om 10 uur zal de workflow automatisch controleren welke SSL certificaten dreigen te verlopen, en deze in de gewenste channel plaatsen.
Resultaat
Let op: In ons voorbeeld zijn de SSL certificaten up to date, waardoor we voor deze koppeling de 'False' branch output van de 'IF' node hebben gebruikt. Hierdoor zijn de meldingen langer dan 7 dagen. Bij gebruik van de 'True' branch zul je enkel een notificatie ontvangen van domeinen waarvan het certificaat binnen 7 dagen zal verlopen.