728x90
의외로 인증서 만료일을 챙기지 못하는 경우가 있다
만료일 체크를 스케줄러에 등록해서 팀즈 알림이 가도록 함
import OpenSSL
import ssl
import socket
import time
from datetime import datetime, timedelta
import pymsteams
domain = 'test.com' #접속 주소
cert = ssl.get_server_certificate((domain, 443))
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
x509info = x509.get_notAfter()
exp_day = x509info[6:8].decode('utf-8')
exp_month = x509info[4:6].decode('utf-8')
exp_year = x509info[:4].decode('utf-8')
exp_date = str(exp_year) + str(exp_month) + str(exp_day)
t = time.time()
today = time.strftime("%Y%m%d", time.gmtime(t))
date_str = today
date_now = datetime.strptime(date_str, "%Y%m%d").date()
date_str2 = exp_date
date_exp = datetime.strptime(date_str2, "%Y%m%d").date()
diff = (date_exp - date_now).days
if diff > 30:
print('pass')
else:
noti = domain + " 인증서 만료 " + str(diff) + "일 남았습니다"
myTeamsMessage = pymsteams.connectorcard("https://") #웹훅 주소 입력 (커넥터 구성하기)
myTeamsMessage.text(noti)
myTeamsMessage.send()
출처) 인증서 체크 : https://gist.github.com/remoharsono/a5b6968b6f06e11a16e5b9cdf4586750
---
다른 코드 (도메인 리스트 / openssl 미사용)
import ssl, socket
from datetime import datetime, timedelta
import time
import pymsteams
# 도메인 리스트 - 오류나면 www 추가
list = ['google.com', 'naver.com']
for hostname in list:
ctx = ssl.create_default_context()
with ctx.wrap_socket(socket.socket(), server_hostname=hostname) as s:
s.connect((hostname, 443))
cert = s.getpeercert()
notAfter = cert['notAfter']
timestamp = ssl.cert_time_to_seconds(notAfter)
exp = datetime.utcfromtimestamp(timestamp)
t = time.time()
today = time.strftime("%Y%m%d", time.gmtime(t))
date_now = datetime.strptime(today, "%Y%m%d").date()
date_exp = datetime.strptime(str(exp), "%Y-%m-%d %H:%M:%S").date()
diff = (date_exp - date_now).days
if diff > 30:
print('pass')
else:
noti = hostname + " 인증서 만료 " + str(diff) + "일 남았습니다"
myTeamsMessage = pymsteams.connectorcard("https://~") #웹훅 주소 입력 (커넥터 구성하기)
myTeamsMessage.text(noti)
myTeamsMessage.send()
Cryptography 방식
728x90
'기타' 카테고리의 다른 글
지라&컨플루언스 - http 접속시 https 전환 (0) | 2020.08.24 |
---|---|
지라 공지 배너에 메뉴 추가 (0) | 2020.08.07 |
애플스토어 커넥트 용어 정리 (0) | 2020.05.07 |
아이폰 비활성화 복원 후기 (0) | 2020.05.02 |
flow 에서 말일 체크 (0) | 2020.04.20 |