| Current Path : /home/otto/python/ |
| Current File : //home/otto/python/check-ssl.py |
import ssl
import socket
from datetime import datetime
def check_ssl_expiry(domain, port=443):
try:
# Connect to the server and get the certificate
context = ssl.create_default_context()
with socket.create_connection((domain, port), timeout=5) as sock:
with context.wrap_socket(sock, server_hostname=domain) as ssock:
cert = ssock.getpeercert()
# Extract expiration date
expiry_date = datetime.strptime(cert['notAfter'], "%b %d %H:%M:%S %Y %Z")
days_remaining = (expiry_date - datetime.utcnow()).days
# Display results
print(f"Domain: {domain}")
print(f"SSL Certificate Expiration Date: {expiry_date.strftime('%Y-%m-%d')}")
print(f"Days Until Expiry: {days_remaining}")
# Return results
return {
"domain": domain,
"expiry_date": expiry_date.strftime('%Y-%m-%d'),
"days_remaining": days_remaining,
"status": "Valid" if days_remaining > 0 else "Expired"
}
except Exception as e:
print(f"Error checking {domain}: {e}")
return {
"domain": domain,
"error": str(e),
"status": "Error"
}
# Example Usage
if __name__ == "__main__":
domains = ["igotafrica.com", "veri-rent.co.za"]
for domain in domains:
check_ssl_expiry(domain)