본문 바로가기
Development/Python

[Python] 파이썬 SSL 인증서 정보 확인 Tool

by 선인장 🌵 2022. 8. 25.
728x90
728x90

파이썬 SSL 인증서 정보 확인 Tool

얼마 전 SSL 인증서 정보 만료 기한이 다가오면서 여러 도메인에 대해서 인증서 정보를 확인을 해야 하는 상황이 발생했다.

SSL 인증서 정보는 Openssl / Curl 명령어나, 브라우저에서 인증서 정보를 통해서 확인이 가능하다.

또한, 이전에 Openssl / Curl 명령어를 통해서 확인하는 방법을 작성했었지만 좀 더 손쉽게 확인을 하기 위해서 파이썬을 이용하여 Tool을 만들어 보았다.

 

[Info] SSL 인증서 정보 확인하기

SSL 인증서 정보 확인하기 SSL 인증서를 사용하여 운영 중인 웹 서버의 정보를 확인하기 위해서 여러 방법이 있다. 확인을 할 수 있는 여러 가지 툴(Tool)이 있지만 이번에는 기본적으로 사용하는 "o

happylie.tistory.com

그럼 제작한 Tool 사용하는 방법에 대해서 간단히 알아보도록 하자.

[Python] 파이썬 SSL 인증서 정보 확인 Tool

728x90

1. 설치 방법

우선 Tool 이름은 Search of SSL Certification Information의 앞글자만 따서 SoSCI(소시)라고 지었다.

현재 해당 내용에 대해서는 Github에 정리해서 올려놓았다.

 

GitHub - happylie/sosci: Search of SSL Certification Information

Search of SSL Certification Information. Contribute to happylie/sosci development by creating an account on GitHub.

github.com

일단 해당 Tool을 사용하기 위해서는 Github를 통해서 Clone을 받도록 하자.

  • $ git clone https://github.com/happylie/sosci.git
# Github Clone 받기

$ git clone https://github.com/happylie/sosci.git

해당 Tool은 Python 기본 라이브러리를 사용함에 따라서 별도로 다른 라이브러리를 설치할 필요가 없다.

또한, Python 3 버전 이상이면 구동하는데 문제가 없다.

2. 실행 방법

이제 Tool을 사용할 준비가 다 되었으니 한번 사용해보도록 하자.

2.1 Help(도움말)

우선적으로 정상적으로 구동되는지 및 어떤 정보가 있는지 확인하기 위해서 먼저 Help 옵션을 이용하여 실행해보자.

  • $ python sosci.py -h
  • $ python sosci.py --help
# Help 옵션 확인

$ python sosci.py -h
usage: sosci.py [-h] [-u URL] [-e] [-v]

Search of SSL Certification Information(SoSCI)

optional arguments:
  -h, --help         show this help message and exit
  -u URL, --url URL  Check URL(HTTPS URL or Hostname)
  -e, --expire       Certification Expire Date
  -v, --version      show program's version number and exit

2.2 SSL 인증서 정보 확인 하기

이제 SSL 인증서 정보를 확인해보도록 하자.

SSL 인증서 정보 확인이 필요한 도메인 혹은 FQDN 혹은 IP를 이용하여 입력하면 된다.

입력 시 u 옵션을 이용해주면 된다.

  • $ python sosci.py -u https://happylie.tistory.com
# Python 실행

$ python sosci.py -u https://happylie.tistory.com | jq
{
  "subject": {
    "countryName": "KR",
    "stateOrProvinceName": "Jeju-do",
    "localityName": "Jeju-si",
    "organizationName": "Kakao Corp.",
    "commonName": "*.tistory.com"
  },
  "issuer": {
    "countryName": "US",
    "organizationName": "DigiCert Inc",
    "organizationalUnitName": "www.digicert.com",
    "commonName": "Thawte TLS RSA CA G1"
  },
  "notBefore": "2022-03-14 00:00:00",
  "notAfter": "2023-03-31 23:59:59",
  "expireDate": "218 Days",
  "subjectAltName": {
    "DNS": [
      "*.tistory.com",
      "tistory.com"
    ]
  }
}
728x90

실행하고 나면 아래와 같이 Json 구조로 결과값이 나오게 된다.

간단히 위 내용을 기반으로 각 항목별 결과값의 의미를 알아보도록 하자.

  • subject : 제목 이름
    • countryName : 국가 또는 지역
    • stateOrProvinceName : 주/도
    • localityName : 소재지
    • organizationName : 조직
    • commonName : 일반 이름
  • issuer : 발급자 이름
    • countryName : 국가 또는 지역
    • organizationName : 조직
    • organizationalUnitName : 조직 단위
    • commonName : 일반 이름
  • notBefore : 인증서 유효 시작일
  • notAfter : 인증서 유효 만료일
  • expireDate : 현재부터 인증서 만료일
  • subjectAltName : 주체 대체 이름
    • DNS : DNS 정보

브라우저를 통해서 인증서 정보를 확인해보면 동일하게 나온 것을 알 수 있다.

2.2 SSL 인증서 정보 확인 하기
2.2 SSL 인증서 정보 확인 하기

2.3 SSL 인증서 만료 일자만 확인하기

Tool을 이용해서 SSL 인증서 전체적인 정보를 확인할 수 있다.

다만, 그냥 만료일이 얼마나 남았는지만 확인하고 싶은 경우도 있어 해당 기능도 간단히 옵션을 통해서 만들어 놓았다.

  • $ python sosci.py -u https://happylie.tistory.com -e
# Python 실행

$ python sosci.py -u https://happylie.tistory.com -e
218 Days

이제 해당 Tool에 대해서 사용하는 방법에 대해서 다 알아보았다.

현재는 단순히 몇 개 안 되는 도메인에 대해서 확인을 하기 위해서 빠르게 만들다 보니 한 번에 하나씩 결과를 확인할 수 있도록 제작되어있으나, 추후에는 대량 도메인을 한 번에 처리하는 부분도 추가적으로 업데이트하도록 하겠다.

또한, 해당 Tool에 대해서 문의가 있거나, 추가할 기능이 필요하다면 Github Issus에 등록해 주거나 댓글로 남겨주면 확인 후 답변하도록 하겠다.

 

GitHub - happylie/sosci: Search of SSL Certification Information

Search of SSL Certification Information. Contribute to happylie/sosci development by creating an account on GitHub.

github.com

728x90
728x90


🌵댓글

 

loading