Últimas notícias

Fique informado
Gerencie a expiração dos certificados SSL e TLS

Gerencie a expiração dos certificados SSL e TLS

19/02/2020

Spotlight

Associações da Sociedade Civil manifestam seu apoio à aprovação da MP 951/2020

A MP autoriza a emissão dos certificados digitais, no padrão da Infraestrutura de Chaves Públicas Brasileira – ICP-Brasil, por meio de videoconferência.

31/07/2020

Entrevista com William Bergamo sobre como a transformação digital foi acelerada pela pandemia mundial

William Bergamo, Co-fundador da e-Safer Consultoria, fala sobre novas soluções de segurança da informação e proteção de dados, como o Envio Seguro, o Assinae e o HUB Digital da e-Safer.

22/07/2020

A Lenda do Herói Neerlandês e sua relação com a tecnologia

Neste ebook apresentamos a história do pequeno herói neerlandês e sua conexão com a tecnologia do SafeSign e todo o ecossistema de soluções da AET – Unlimited access to your world.

22/07/2020

Certificado digital e a importância da lista de revogação. Por Adriano Frare

A importância da verificação da lista de certificados revogados (LCR) na validação do certificado, matéria por Adriano Frare.

05/02/2020

Os desafios de segurança no IoT. Por Adriano Frare

O crescente aumento no número de empresas que adotam a Internet das Coisas (IoT), surgirá uma série de novas vulnerabilidades de segurança.

22/01/2020

10 ferramentas online para testar SSL, TLS e vulnerabilidades

A verificação da vulnerabilidade do SSL e TLS são necessárias para garantir que os parâmetros de certificado estejam corretamente configurados.

15/01/2020

Gerencie os seus certificados de SSL e verifique as expirações através de um simples e inteligente script, evitando assim que os navegadores impeçam o acesso ao seu site.

Por Adriano Valério

Adriano Valério L. Frare – Pki consultant / BlockChain / Security / Pen Test

Primeiramente, temos que lembrar que a grande de maioria dos certificados de SSL (HTTPs) tem validade de 1 (um) ano, ocorre que muitas vezes a área de tecnologia não se atenta ao vencimento e o certificado de SSL expira. Isso acontece o tempo todo, na maioria das empresas.

Como verificar a expiração do certificado de SSL

USO: SSLexpiryPredictions.sh – [cdewh]

DESCRIÇÃO: Este script prevê os certificados SSL expirados com base na data final.

Opções

-c define o valor para o arquivo de configuração que possui detalhes server: port ou host: port.

-d define o valor do diretório que contém os arquivos de certificado no formato crt ou pem.

-e define o valor da extensão do certificado, por exemplo, crt, pem, cert. Por padrão o script utiliza a extensão .crt [a ser usado com -d, se a extensão do arquivo de certificado for diferente de .crt]

-w define o valor para gravar a saída do script em um arquivo.

-h imprime essa ajuda e sai.

Exemplos

Para criar um arquivo com uma lista de todos os servidores e seus números de porta para fazer um handshake SSL, use:

cat> servers.list

server1: porta1

server2: porta2

server3: porta3

(ctrl + d)

$ ./SSLexpiryPredictions.sh -c server.list

Execute o script fornecendo o local e a extensão do certificado (caso não seja .crt):

./SSLexpiryPredictions.sh -d /path/to/certificates/dir -e pem

 

Abaixo, está disponível o código fonte do script.

 SCRIPT

#!/bin/bash

##############################################

#

#       PURPOSE: The script to predict expiring SSL certificates.

#

#       AUTHOR: ‘Abhishek.Tamrakar’

#

#       VERSION: 0.0.1

#

#       COMPANY: Self

#

#       EMAIL: abhishek.tamrakar08@gmail.com

#

#       GENERATED: on 2018-05-20

#

#       LICENSE: Copyright (C) 2018 Abhishek Tamrakar

#

#  Licensed under the Apache License, Version 2.0 (the “License”);

#  you may not use this file except in compliance with the License.

#  You may obtain a copy of the License at

#

#       http://www.apache.org/licenses/LICENSE-2.0

#

#   Unless required by applicable law or agreed to in writing, software

#   distributed under the License is distributed on an “AS IS” BASIS,

#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

#   See the License for the specific language governing permissions and

#   limitations under the License.

##############################################

 

#your Variables go here

script=${0##/}

exitcode=”

WRITEFILE=0

CONFIG=0

DIR=0

# functions here

usage()

{

cat <<EOF

 

USAGE: $script -[cdewh]”

 

DESCRIPTION: This script predicts the expiring SSL certificates based on the end date.

 

OPTIONS

 

-c|   sets the value for configuration file which has server:port or host:port details.

 

-d|   sets the value of directory containing the certificate files in crt or pem format.

 

-e|   sets the value of certificate extention, e.g crt, pem, cert.

crt: default

 

-w|   sets the value for writing the script output to a file.

 

-h|   prints this help and exit.

 

EOF

exit 1

}

# print info messages

info()

{

printf ‘\n%s: %6s\n’ “INFO” “$@”

}

# print error messages

error()

{

printf ‘\n%s: %6s\n’ “ERROR” “$@”

exit 1

}

# print warning messages

warn()

{

printf ‘\n%s: %6s\n’ “WARN” “$@”

}

# get expiry for the certificates

getExpiry()

{

local expdate=$1

local certname=$2

today=$(date +%s)

timetoexpire=$(( ($expdate – $today)/(60*60*24) ))

 

expcerts=( ${expcerts[@]} “${certname}:$timetoexpire” )

}

 

# print all expiry that was found, typically if there is any.

printExpiry()

{

local args=$#

i=0

if [[ $args -ne 0 ]]; then

#statements

printf ‘%s\n’ “———————————————”

printf ‘%s\n’ “List of expiring SSL certificates”

printf ‘%s\n’ “———————————————”

printf ‘%s\n’ “$@”  | \

sort -t’:’ -g -k2 | \

column -s: -t     | \

awk ‘{printf “%d.\t%s\n”, NR, $0}’

printf ‘%s\n’ “———————————————”

fi

}

 

# calculate the end date for the certificates first, finally to compare and predict when they are going to expire.

calcEndDate()

{

sslcmd=$(which openssl)

if [[ x$sslcmd = x ]]; then

#statements

error “$sslcmd command not found!”

fi

# when cert dir is given

if [[ $DIR -eq 1 ]]; then

#statements

checkcertexists=$(ls -A $TARGETDIR| egrep “*.$EXT$”)

if [[ -z ${checkcertexists} ]]; then

#statements

error “no certificate files at $TARGETDIR with extention $EXT”

fi

for file in $TARGETDIR/*.${EXT:-crt}

do

expdate=$($sslcmd x509 -in $file -noout -enddate)

expepoch=$(date -d “${expdate##*=}” +%s)

certificatename=${file##*/}

getExpiry $expepoch ${certificatename%.*}

done

elif [[ $CONFIG -eq 1 ]]; then

#statements

while read line

do

if echo “$line” | \

egrep -q ‘^[a-zA-Z0-9.]+:[0-9]+|^[a-zA-Z0-9]+_.*:[0-9]+’;

then

expdate=$(echo | \

openssl s_client -connect $line 2>/dev/null | \

openssl x509 -noout -enddate 2>/dev/null);

if [[ $expdate = ” ]]; then

#statements

warn “[error:0906D06C] Cannot fetch certificates for $line”

else

expepoch=$(date -d “${expdate##*=}” +%s);

certificatename=${line%:*};

getExpiry $expepoch ${certificatename};

fi

else

warn “[format error] $line is not in required format!”

fi

done < $CONFIGFILE

fi

}

# your script goes here

while getopts “:c:d:w:e:h” options

do

case $options in

c )

CONFIG=1

CONFIGFILE=”$OPTARG”

if [[ ! -e $CONFIGFILE ]] || [[ ! -s $CONFIGFILE ]]; then

#statements

error “$CONFIGFILE does not exist or empty!”

fi

;;

e )

EXT=”$OPTARG”

case $EXT in

crt|pem|cert )

info “Extention check complete.”

;;

* )

error “invalid certificate extention $EXT!”

;;

esac

;;

d )

DIR=1

TARGETDIR=”$OPTARG”

[ $TARGETDIR = ” ] && error “$TARGETDIR empty variable!”

;;

w )

WRITEFILE=1

OUTFILE=”$OPTARG”

;;

h )

usage

;;

\? )

usage

;;

: )

fatal “Argument required !!! see \’-h\’ for help”

;;

esac

done

shift $(($OPTIND – 1))

#

calcEndDate

#finally print the list

if [[ $WRITEFILE -eq 0 ]]; then

#statements

printExpiry ${expcerts[@]}

else

printExpiry ${expcerts[@]} > $OUTFILE

fi

#####

 

O script irá auxiliar a muitos administradores de segurança gerencie a lista de certificados ssl a serem renovados.

Espero ter contribuído com este artigo a facilitar a vidas dos administradores de TI.

Adriano Valério L. Frare – Pki consultant / BlockChain / Security / Pen Test

Fonte: https://opensource.com

  Acesse o maior conteúdo sobre certificados SSL e TLS do Brasil aqui!!