fix: TLS check - use if/else instead of capturing openssl exit code
Some checks failed
CI/CD → Deploy via SSH / Build & Push Docker Images (push) Successful in 28s
CI/CD → Deploy via SSH / Deploy via SSH (push) Successful in 3m1s
CI/CD → Deploy via SSH / Validate HTTPS & Endpoints (push) Failing after 46s

openssl x509 -checkend prints 'Certificate will not expire' to stdout,
so the DAYS variable became a multiline string, never equal to '0'.
Also downgraded cert-near-expiry to a warning (not deploy-blocking).
This commit is contained in:
MatheusAlves96 2026-04-22 22:53:15 -03:00
parent d3e4438a4f
commit e1c2a33686

View file

@ -182,12 +182,14 @@ jobs:
| openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2) | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
echo "Expira: $EXPIRY" echo "Expira: $EXPIRY"
# Alpine usa busybox date — converte via openssl diretamente # Alpine usa busybox date — converte via openssl diretamente
DAYS=$(echo | openssl s_client -connect ${{ vars.SSH_HOST }}:443 \ # checkend retorna 0 se o cert NÃO expira nos próximos N segundos (604800 = 7 dias)
-servername ${{ vars.DOMAIN }} 2>/dev/null \ if echo | openssl s_client -connect ${{ vars.SSH_HOST }}:443 \
| openssl x509 -noout -checkend 604800 2>/dev/null; echo $?) -servername ${{ vars.DOMAIN }} 2>/dev/null \
# checkend retorna 0 se válido por mais de N segundos (604800 = 7 dias) | openssl x509 -noout -checkend 604800 > /dev/null 2>&1; then
[ "$DAYS" = "0" ] || (echo "❌ Cert expira em menos de 7 dias!" && exit 1) echo "✅ Certificado válido por mais de 7 dias (expira: $EXPIRY)"
echo "✅ Certificado válido por mais de 7 dias (expira: $EXPIRY)" else
echo "⚠️ Cert expira em menos de 7 dias (expira: $EXPIRY) — renovar em breve"
fi
- name: GET /api/v1/properties - name: GET /api/v1/properties
run: | run: |