Anonymise validity.sh
-put variables in $HOME/.env -put list of domains in an validity_domains.txt file
This commit is contained in:
25
README.md
Normal file
25
README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# certificate
|
||||
|
||||
Bash scripts to check whether a site is available or not, and whether the certificate is valid or not.
|
||||
|
||||
|
||||
|
||||
#### 1) urls_check.sh
|
||||
|
||||
Usage: urls_check.sh
|
||||
|
||||
|
||||
|
||||
#### 2) validity.sh
|
||||
|
||||
Usage: ./validity.sh
|
||||
|
||||
Check whether the certificate is valid or not.
|
||||
|
||||
Required the <u>validity_domains.txt</u> file that contain a list of domains:
|
||||
|
||||
```bash
|
||||
domain1.com
|
||||
domain2.fr
|
||||
```
|
||||
|
||||
50
validity.sh
50
validity.sh
@@ -3,7 +3,7 @@
|
||||
#
|
||||
# Run: ./validity.sh
|
||||
|
||||
VERSION="v0.9"
|
||||
VERSION="v1.0"
|
||||
|
||||
red="\033[1;31m"
|
||||
greenbold="\033[1;32m"
|
||||
@@ -16,7 +16,6 @@ italic="\033[3m"
|
||||
underline="\033[4m"
|
||||
reset="\033[0m"
|
||||
|
||||
#echo | openssl s_client -servername maboiteverte.fr -connect maboiteverte.fr:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates
|
||||
|
||||
#export PATH="/usr/local/bin:$PATH"
|
||||
# run by cron $PATH=/usr/bin:/bin
|
||||
@@ -30,31 +29,43 @@ if [ $? -eq 1 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
hosts=("maboiteverte.fr" "sur-le-sentier.fr" "photos-nas.ovh" "clicclac.info")
|
||||
#hosts=("maboiteverte.fr")
|
||||
port=443
|
||||
# Days left before notification
|
||||
nday=15
|
||||
# Choose the notification
|
||||
notif="pushover"
|
||||
|
||||
dotenv () {
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
[ -f "$HOME/.env" ] && . "$HOME/.env" || echo -e "${red}\nNo .env file found ! No token for gotify.${reset}"
|
||||
set +a
|
||||
#
|
||||
# Gotify: $GOTIFY_SERVER (server url), $GOTIFY_BASH (token)
|
||||
# Pushover: $USER_KEY$ (user) $BASH_APP (token)
|
||||
}
|
||||
|
||||
dotenv
|
||||
|
||||
### Variables for self updating
|
||||
ScriptArgs=( "$@" )
|
||||
ScriptPath="$(readlink -f "$0")" # /Users/bruno/Documents/Scripts/bashbirds/bashbirds.sh
|
||||
ScriptWorkDir="$(dirname "$ScriptPath")" # /Users/bruno/Documents/Scripts/bashbirds
|
||||
|
||||
# Domains to check
|
||||
#hosts=("domain.com")
|
||||
if [ -f "$ScriptWorkDir/validity_domains.txt" ]; then
|
||||
readarray -t hosts < "$ScriptWorkDir/validity_domains.txt"
|
||||
else echo -e "${red}No domain to check !${reset}"
|
||||
fi
|
||||
port=443
|
||||
# Days left before notification
|
||||
nday=15
|
||||
# Choose the notification (pushover or gotify)
|
||||
notif="pushover"
|
||||
|
||||
send_gotify_notification() {
|
||||
# Enabled HSTS & created default WebSocket records in the DSM 7.2 reverse proxy window and it solved itself.
|
||||
|
||||
now=$(date +"%d-%m-%Y %T")
|
||||
gotify_server="https://gotify.maboiteverte.fr"
|
||||
gotify_server="$GOTIFY_SERVER"
|
||||
gotify_token="$GOTIFY_BASH"
|
||||
TITLE="$1"
|
||||
MESSAGE="**A new version of Pi-hole is available:**\n\n $msg_md\n\n $infos\n\n Please run *pihole -up* on $host to update !"
|
||||
MESSAGE="$2"
|
||||
PRIORITY=8
|
||||
URL="$gotify_server/message?token=$gotify_token&?format=markdown"
|
||||
|
||||
@@ -84,7 +95,7 @@ send_pushover_notification() {
|
||||
|
||||
|
||||
for host in "${hosts[@]}"; do
|
||||
if command -v showcertif >/dev/null 2>&1; then
|
||||
if command -v showcert >/dev/null 2>&1; then
|
||||
cert=$(showcert $host)
|
||||
|
||||
ip=$(echo "$cert" | grep IP | awk -F": " '{print $2}')
|
||||
@@ -94,14 +105,6 @@ for host in "${hosts[@]}"; do
|
||||
end=$(echo "$cert" | grep notAfter | awk -F": " '{print $2}')
|
||||
left=$(echo "$end" | awk -F" " '{split($3, arr, "[()]"); print arr[2]}')
|
||||
|
||||
# maboiteverte.fr
|
||||
# IP: 212.227.191.167
|
||||
# Names: *.maboiteverte.fr maboiteverte.fr
|
||||
# notBefore: 2024-01-08 00:00:00 (298 days old)
|
||||
# notAfter: 2025-01-27 23:59:59 (87 days left)
|
||||
# Issuer: C=US O=DigiCert Inc OU=www.digicert.com CN=Encryption Everywhere DV TLS CA - G2
|
||||
# Tags: [CHAIN-VERIFIED]
|
||||
|
||||
h="$host ($ip)"
|
||||
n="Names: $names"
|
||||
i="Issuer: $issuer"
|
||||
@@ -122,12 +125,7 @@ for host in "${hosts[@]}"; do
|
||||
timestamp_end=$(date --date="$end" +"%s")
|
||||
left=$(($((timestamp_end - timestamp_current))/(60*60*24)))
|
||||
end="$end ($left days left)"
|
||||
|
||||
ip=$(dig +short $host)
|
||||
# issuer=C=US, O=DigiCert Inc, OU=www.digicert.com, CN=Encryption Everywhere DV TLS CA - G2
|
||||
# subject=CN=*.maboiteverte.fr
|
||||
# notBefore=Jan 8 00:00:00 2024 GMT
|
||||
# notAfter=Jan 27 23:59:59 2025 GMT
|
||||
|
||||
h="$host ($ip)"
|
||||
n="Subject: $subject"
|
||||
|
||||
Reference in New Issue
Block a user