Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Audit SSL certificate expiry and email providers for a list of domains in Python

2026年10月14日に「Dev.to」が公開したITニュース「Audit SSL certificate expiry and email providers for a list of domains in Python」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

SSL証明書の期限切れでサイトが停止するのを防ぐため、PythonとApifyツールが紹介された。複数のドメインの証明書期限、発行元、メール・DNSプロバイダ情報を自動取得し、管理を効率化する。

ITニュース解説

システムエンジニアを目指す皆さんにとって、ウェブサイトの安定稼働は非常に重要な課題の一つだろう。ウェブサイトが突然アクセスできなくなったり、セキュリティ警告が表示されたりする原因は多岐にわたるが、その中でも「SSL証明書の期限切れ」は意外と多く、そして単純な理由で発生する問題だ。ウェブサイトを安全に運用するためには、このSSL証明書が適切に管理され、常に有効な状態を保っている必要がある。しかし、多くの企業やプロジェクトでは、管理すべきドメインの数が膨大になり、どのドメインの証明書がいつ期限切れになるのかを把握しきれなくなることがある。これが、「ドメインが誰もチェックしていないリストに載っていた」という、期限切れの典型的な原因となる。

このような問題を解決するためには、ウェブサイトのSSL証明書の有効期限や、その他の重要な技術情報を効率的に把握できるツールが必要になる。今回の記事では、Apifyというプラットフォーム上で提供されている「Website Tech Stack Detector」というツールと、それを利用したPythonスクリプトを使って、複数のドメインの情報を一括で監査する方法が紹介されている。このツールは、単なる監視製品とは異なり、一度に多くのドメインについて「ドメイン名」「証明書の発行者」「有効期限」「残り日数」といった核心的な情報を一覧で提供することを目的としている。

具体的にこのツールが何をしてくれるかというと、各ウェブサイトに対して「TLSハンドシェイク」と呼ばれる通信を行い、SSL証明書の情報を取得する。また、「DNSルックアップ」という、ドメイン名からIPアドレスやその他の情報を探し出す処理も実行する。これにより、以下のような詳細な情報をまとめて取得できるのだ。

  • domain (ドメイン): 調査対象のウェブサイトのアドレス。
  • tlsIssuer (証明書発行者): そのウェブサイトのSSL証明書を発行した組織名。例えば「Let's Encrypt」や「Google Trust Services」などがある。
  • tlsExpires (有効期限): SSL証明書の有効期限が切れる日付と時刻。
  • emailProvider (メールプロバイダー): そのドメインのメールの送受信を管理しているサービス。これはMXレコードというDNS情報から判断される。
  • emailSenders (メール送信者): そのドメイン名を使ってメールを送信することが許可されているサービスの一覧。これはSPFレコードというDNS情報に基づいて判断される。
  • dnsProvider (DNSプロバイダー): そのドメインのDNS情報を管理しているサービス。これはネームサーバーの情報から判断される。
  • mxRecords (MXレコード): そのドメイン宛のメールをどのメールサーバーが受け取るかを示す情報。

記事では、実際に46の異なる種類のドメイン(ECサイト、ブログ、ニュースサイトなど)に対してこのツールを実行した結果が示されている。その結果、44のドメインでSSL証明書が確認され、発行者としては「Let's Encrypt」が最も多く、次いで「Google Trust Services」が続くことが明らかになった。興味深いのは、証明書の残り日数に関する分析だ。例えば、有効期限が90日間の「Let's Encrypt」の証明書の場合、残り日数が30〜89日であれば、自動更新が適切に行われている健全な状態だと判断できる。一方で、1年間の有効期間を持つ証明書で残り日数が短い場合、手動での更新が必要で、見落としやすい可能性があるため、注意が必要だと指摘されている。

この情報を自動で取得し、管理するためのPythonスクリプトも紹介されている。まず、「apify-client」というライブラリをインストールし、ApifyのAPIと連携する。スクリプトは、ドメイン名を記述したテキストファイルを読み込み、それを入力として「Website Tech Stack Detector」を実行する。その後、取得されたデータから必要な情報を抽出し、証明書の残り日数を計算する。計算された残り日数に基づき、21日を切っているものなど、注意が必要なドメインを特定して警告を表示し、最終的にすべての情報をCSVファイルに整理して出力する。このようなスクリプトを週に一度など定期的に実行することで、手動で確認する手間を省き、期限切れが近づいている証明書を早期に発見し、対応できるようになる。

取得できる情報の中でも、特にメール関連の列(emailProviderやemailSenders)は、セキュリティや運用管理の観点から非常に有用だ。例えば、企業がメールサービスを別のプロバイダーに移行する際、どのドメインがまだ古いサービスを使っているのかをemailProviderの列から確認できる。また、emailSendersは、そのドメインがメールを送信することを許可している外部サービス(例えば、顧客サポートのZendeskやマーケティングのHubSpotなど)の一覧を示しているため、現在使われていないサービスが含まれていれば、セキュリティリスクを減らすためにその許可を取り消すことを検討できる。さらに、dnsProviderの情報は、ドメインの設定を変更する必要がある場合に、どの管理画面にログインすればよいかを示してくれるため、引き継いだドメインの管理に役立つ。

このツールを利用する際にはいくつかの注意点がある。まず、このツールは通常、ドメインのメインウェブサイト(ホームページ)に設定されているSSL証明書を読み取る。もしapi.example.comやshop.example.comのようなサブドメインがそれぞれ異なる証明書を使っている場合、それらも個別のドメインとしてリストに追加してチェックする必要がある。また、前述のように、SSL証明書の残り日数が短いこと自体が必ずしも問題ではない。有効期間が短い「Let's Encrypt」のような証明書では、残り30日でも正常な状態であるため、証明書の発行元を考慮して警告のしきい値を設定することが重要になる。さらに、CloudflareなどのCDN(コンテンツデリバリーネットワーク)を利用しているウェブサイトの場合、ツールが読み取るのはCDNが提供する証明書であり、オリジンサーバー(実際のウェブサイトが稼働しているサーバー)の証明書ではない点も理解しておくべきだ。メールプロバイダーに関しても、Proofpointのようなメールフィルタリングサービスを経由している場合、emailProviderにはそのサービス名が表示され、最終的なメールボックスのホスト名ではないため、emailSendersの情報と合わせて判断することが推奨される。

このApify上のサービスは有料だが、無料トライアルクレジットが提供されており、例えば200ドメインを週に一度チェックしても、月にかかる費用は非常に低額である。このように、システムエンジニアとしてウェブサイトの安定稼働とセキュリティを確保するために、証明書の管理は必須の業務となる。このようなツールとスクリプトを活用することで、効率的かつ確実にリスクを管理できるようになる。

関連コンテンツ

関連IT用語

関連ITニュース