SSLチェッカー

無料のSSL証明書チェックツールで、どのサイトのSSL証明書もオンラインで確認できます。有効かどうか、有効期限、すべてのブラウザーでの信頼チェーン、失効、TLSバージョンと暗号スイートを調べ、数秒でA+〜Fの評価を付けます。Webサイトにもメールサーバーにも使えます。

情報源:その場で行うTLSハンドシェイク · 4つのルートストア(CCADB) · OCSPまたはCRL · Certificate Transparencyログ · hstspreload.org

SSLチェッカーで確認できること

SSLチェッカーは、ブラウザーと同じようにサーバーに接続し、サーバーが提示する証明書を読み取るツールです。このツールはTLSの通信を自前で行うため、サーバーが送ってくるものをそのまま確認できます。証明書とそのチェーン、プロトコルバージョン、暗号スイート、鍵交換です。Cloudflareの背後にあるサイトは当サイトからの接続を拒否するため、その場合は証明書をCTログから取得し、プロトコルのスキャンと評価は行いません。IPv6のみのサーバーには、まだ接続できません。そのうえで、ブラウザーとOSが使う4つのルートストアに照らしてチェーンを検証し、証明書が失効していないかをCAに問い合わせ、サーバーが古いプロトコルや弱い暗号をまだ受け付けていないかをスキャンします。

結果は、SSLテストとTLSチェッカーを兼ねています。わかりやすい言葉での判定、理由付きのA+〜Fの評価、その根拠となる詳細です。証明書の周辺の設定、つまりHSTSヘッダー、HTTPからHTTPSへのリダイレクト、CAAレコード、Certificate Transparencyログも確認します。

github.comのSSLチェッカーの結果:有効な証明書、A+の評価、有効期間の目盛り、4つのルートストアまでの信頼チェーンgithub.comのSSLチェッカーの結果:有効な証明書、A+の評価、有効期間の目盛り、4つのルートストアまでの信頼チェーン判定有効かどうかをひと言で示し、残り日数、発行者、理由付きの評価を表示します。有効期間証明書が有効期間のどこにあるかを示します:発行日、今日、有効期限を、発行日に応じた上限と比べて表示します。信頼チェーンサイトからルートまでのすべての証明書と、それぞれの入手方法、4つのルートストアの判定を表示します。チェック項目ホスト名、チェーン、信頼性、失効、プロトコル、鍵交換、HSTS、CAA。問題があれば、それぞれに修正方法を示します。
github.comを確認した例です。判定と評価、証明書の有効期間、各チェック項目、ブラウザーのルートストアに至る信頼チェーンを表示します。番号を選ぶと、各部分に何が表示されているかを確認できます。

SSL証明書を確認する方法

手軽な方法から詳しい方法まで、3つあります:

  1. 1

    このSSL証明書チェックツールで

    ドメイン(またはURL、ほかのサービスならhost:port)を入力し、SSLをチェックを選びます。まず証明書とそのチェーンが届き、続いて失効、プロトコルのスキャン、HSTSの結果が加わり、最後に判定と評価が表示されます。

  2. 2

    ブラウザーで

    アドレスの左にあるアイコンを選び、ChromeではConnection is secure(接続は保護されています)、Certificate is valid(証明書は有効です)の順に、FirefoxではMore information(詳細を表示)を選びます。名前、発行者、日付はわかりますが、サーバーが送ったとおりのチェーン、許可しているプロトコル、失効しているかどうかはわかりません。Chromeは、ほとんどの失効をオンラインで確認しないからです。

  3. 3

    opensslで

    openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/nullで、サーバーが送るチェーンが表示されます。有効期限を見るには、出力をopenssl x509 -noout -datesにパイプします。コマンドは下の表と、結果の「チェーン」ビューにあります。

SSL証明書の有効期限を確認する方法

上でドメインを確認してください。結果には残り日数が表示され、発行日から有効期限までの証明書の有効期間全体が示されます。有効期限に表示される日時は証明書のnotAfterフィールドの値で、その時刻を過ぎると、すべてのブラウザーが全画面の警告を表示します(ChromeではNET::ERR_CERT_DATE_INVALID)。

ターミナルでは、echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddateで同じ日付が表示され、-checkend 2592000を使えば、30日以内に期限が切れるかどうかをスクリプトで判定できます。「履歴」ビューからは、有効期限前の好きな日付でカレンダーのリマインダーをダウンロードでき、アカウントは不要です。

Let's Encryptは2025年6月に有効期限の通知メールを廃止し、証明書の有効期間も短くなっているため、更新は自動化すべきです。有効期間の約3分の2の時点(90日の証明書なら60日目)で更新するか、ACME Renewal Information(RFC 9773)で更新のタイミングをCAに決めてもらいます。

証明書の有効期間 · example-shop.com

発行 2026年9月1日 · 90日2026年10月31日までに更新上限200日
今日 · 90日中51日目有効期限 2026年11月30日今日 · 90日中51日目 · 有効期限 2026年11月30日
openssl x509 -enddate
$ echo | openssl s_client -connect example-shop.com:443 -servername example-shop.com 2>/dev/null | openssl x509 -noout -enddate
notAfter=Nov 30 07:11:59 2026 GMT
$ echo | openssl s_client -connect example-shop.com:443 -servername example-shop.com 2>/dev/null | openssl x509 -noout -checkend 2592000
Certificate will not expire

SSL証明書の有効期間が短くなっているのはなぜですか?

ブラウザーとCAが投票で決めたからです。CA/Browser Forumの投票SC-081(2025年4月)により、パブリックなTLS証明書の最長有効期間は3段階で短縮されます。鍵が漏えいした証明書や、記載された身元情報が古くなった証明書を、より早く使えなくするためです:

ドメイン認証の再利用期間も同時に短くなります。CAが完了済みのドメイン認証を再利用できる期間は、現在は200日、2027年からは100日、2029年3月からはわずか10日になるため、ほぼ毎回、ドメインを改めて証明することになります。

Let's Encryptは独自のスケジュールでさらに先を行きます。90日の証明書は2027年2月10日に64日、2028年2月16日に45日の証明書になり、6日間の証明書はすでに利用できます。発行日時点の上限より長い有効期間がこのチェッカーに表示された証明書は、規則に違反しています(Chromeは拒否します)。

  1. 2020年以降398日
  2. 2026年3月15日200日
  3. 2027年3月15日100日
  4. 2029年3月15日47日

年に1回の手動更新は、2026年3月15日に通用しなくなりました。ACMEクライアント(Certbot、Caddy、ホスティング会社のAutoSSL)を使い、更新が実際に行われているかを確認してください。

SSLチェーンチェッカー:リーフ証明書、中間証明書、ルート証明書

ブラウザーがサイトの証明書を信頼するのは、その証明書から、ルートストアにあるルート証明書まで署名のチェーンがつながっているからです。サーバーは自身の証明書と中間証明書を送る必要があり、ルート証明書はすでにデバイスにあります。このチェーンチェッカーはチェーンを2通りに表示します。サーバーが送ったとおりのチェーンと、各ストアが信頼するルートまで含めたブラウザーが組み立てるチェーンです。

最もよくある間違いは中間証明書の不足で、サーバーが自身の証明書しか送っていない状態です。Chromeは通常、証明書に記載されたアドレス(AIA)から不足分を取得でき、FirefoxはCAがCCADBに開示した中間証明書をあらかじめ読み込んでいるため、ブラウザーではサイトが正常に見えます。しかし、アプリ、APIクライアント、curlなどのツールはそうしないことが多く、unable to get local issuer certificateのようなエラーで失敗します。

リーフ証明書(サイトの証明書)
サブジェクト代替名(SAN)にサイトの名前を記載し、サーバーの公開鍵を持ちます。2026年3月15日以降に発行されたものは、有効期間が最長200日です。
中間証明書
ルートが署名し、サイトの証明書に署名します。これにより、ルートの鍵をオフラインで保管できます。サーバーが送る必要があります。
ルート証明書
自己署名の証明書で、ブラウザーやOSがルートストアに収録しているため信頼されます。送ってもかまいませんが、意味はありません。

不完全なチェーンを修正する

  1. 1

    証明書単体ではなく、CAから提供されたフルチェーンのファイル(fullchain.pemやca-bundleという名前が多い)をインストールします。結果の「チェーン」ビューから、正しいバンドルをダウンロードできます。

  2. 2

    nginx:ssl_certificateには、証明書の後に中間証明書を続けた1つのファイルを指定します。

  3. 3

    Apache 2.4.8以降:SSLCertificateFileのファイルに、証明書に続けて中間証明書を入れます(それより古いバージョンではSSLCertificateChainFileを使います)。

  4. 4

    もう一度確認します。チェーンが4つのストアすべてでルートに到達し、当サイトで取得と表示された証明書が1つもなければ完了です。

信頼チェーン

  1. サイトの証明書example-shop.comLet's Encrypt · DV · RSA 2048サーバーが送信
  2. 中間証明書R13RSA 2048 · 2027年3月までサーバーが送信
  3. ルートISRG Root X12035年6月までルートストアから
  4. ルートストアすべてのストアで信頼

よくあるSSL証明書エラーと対処法

ブラウザーの警告の意味と、チェッカーでの表示内容です:

  • NET::ERR_CERT_DATE_INVALID

    SEC_ERROR_EXPIRED_CERTIFICATE / MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE

    証明書の有効期限が切れている(またはまだ有効になっていない)か、デバイスの時計がずれています。

    証明書を更新して新しい証明書をインストールし、更新を自動化します。チェッカーの有効期間の目盛りに日付が表示されます。

  • NET::ERR_CERT_AUTHORITY_INVALID

    SEC_ERROR_UNKNOWN_ISSUER / MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT

    チェーンが信頼されたルートにつながっていません。自己署名やプライベートCAの証明書か、中間証明書の不足が原因です。

    パブリックCAの証明書を、完全なチェーンとともにインストールします。信頼チェーンを見れば、どこで途切れているかがわかります。

  • NET::ERR_CERT_COMMON_NAME_INVALID

    SSL_ERROR_BAD_CERT_DOMAIN

    証明書に、開いたサイトの名前が記載されていません。ワイルドカードが対象とするのは1階層だけで、*.example.comはexample.comにもa.b.example.comにも一致しません。

    サイトが応答するすべての名前を、wwwも含めて記載した証明書を発行します。

  • ERR_SSL_VERSION_OR_CIPHER_MISMATCH

    SSL_ERROR_NO_CYPHER_OVERLAP / SSL_ERROR_UNSUPPORTED_VERSION

    ブラウザーとサーバーに共通のプロトコルバージョンや暗号スイートがありません。多くの場合、サーバーがTLS 1.0や古い暗号しか提供していないことが原因です。

    TLS 1.2とTLS 1.3を、AEAD暗号とともに有効にします。サーバーが受け付ける内容は「プロトコル」ビューに一覧表示されます。

サーバーが対応すべきTLSバージョンは?

TLS 1.3とTLS 1.2だけで、それより古いものは不要です。TLS 1.0と1.1は2021年3月から正式に非推奨となっており(RFC 8996)、現在のブラウザーはすべて拒否します。SSL 3.0は安全性が破綻しています。現在RFC 9846となっているTLS 1.3は、より高速で(往復1回)、前方秘匿性のあるAEAD暗号だけを残しています。

次に注目すべきは鍵交換です。Chrome、Firefox、Appleのシステムは現在、X25519とポスト量子暗号ML-KEM(FIPS 203)を組み合わせ、RFC 10024でTLS向けに標準化されたハイブリッド方式X25519MLKEM768を提示しています。これにより、今日記録された通信が将来の量子コンピューターで解読されることを防げます。2025年後半には、Cloudflareを経由する人間のトラフィックの半分以上がこれを使っていましたが、対応しているオリジンサーバーはまだわずかです。ご自身のサーバーが対応しているかは「プロトコル」ビューで確認できます。

SSLの評価の仕組み

評価は、Qualys SSL Labsの評価ガイドを手本にしています。ブラウザーがエラーとして表示する問題があれば、まずそれで等級が決まり、そのうえで弱い設定ごとに、得られる最高の等級に上限がかかります。

評価条件
A+減点のないAに加えて、TLS 1.3と、6か月以上のHSTS。
A信頼されていて、TLS 1.2と1.3のみ、前方秘匿性とAEAD暗号。メールサーバーの最高評価はここまでです(HSTSはWebサイト向けのため)。
A-TLS 1.3に非対応、または有効なHSTSヘッダーのないWebサイト。
BTLS 1.0、TLS 1.1、RC4をまだ受け付けている、2048ビット未満の鍵、前方秘匿性やAEADがない、またはチェーンが不完全。
CSSL 3.0が有効、最新のクライアントにも3DESやRC4が選ばれる、またはTLS 1.2にも1.3にも非対応。
F有効期限切れ、失効済み、輸出グレードの暗号、RC4のみ、またはSSL 3.0が最上位のプロトコル。
T / M信頼されていない(T)、または別の名前に発行されている(M)。設定にかかわらず、ブラウザーは警告を表示します。修正後に得られる等級もあわせて表示します。

HSTS、CAA、OCSPなどの設定

  • HSTS

    Strict-Transport-Securityヘッダーは、max-ageの秒数のあいだHTTPSだけを使うようブラウザーに指示します。期間を1年以上にし、includeSubDomainsとpreloadを指定すれば、ブラウザーに組み込まれたHSTSプリロードリストに登録できます。結果では、ヘッダーとリストの両方を確認します。

  • HTTPからHTTPSへ

    http://は、何よりも先に同じ名前のhttps://へリダイレクトさせます。そうしないと、最初のアクセスが暗号化されないままになります。

  • CAAレコード

    DNSのCAAレコードは、そのドメインの証明書を発行できるCAを指定するもので、すべてのパブリックCAが確認しなければなりません。結果にはレコードと、現在の証明書を発行したCAを許可しているかどうかが表示されるため、更新の失敗を防げます。

  • 失効

    2024年以降、CRLは必須、OCSPは任意となり、Let's Encryptは2025年8月にOCSPサービスを終了しました。OCSPのアドレスがない証明書は正常で、チェッカーは代わりにCRLを確認します。

OpenSSLでSSL証明書を確認する

同じ確認を行うopensslコマンドです。macOS、Linux、Windows(OpenSSLをインストール済みの場合)で使えます。example.comをご自身のホスト名に置き換えてください:

確認する内容コマンド
サーバーが送るチェーンopenssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null
有効期限echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
30日以内に期限切れになるかecho | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -checkend 2592000
名前、発行者、鍵echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -text
TLS 1.3を受け付けるかopenssl s_client -connect example.com:443 -servername example.com -tls1_3 </dev/null
メールサーバー(STARTTLS)openssl s_client -connect mail.example.com:587 -starttls smtp -servername mail.example.com </dev/null

SSLチェッカーAPI

CORSに対応した無料のエンドポイントです。/api/ssl-certificateに{"domain": "example.com"}をPOSTすると、以前のAPIのフィールドが返ります。信頼性、署名、バージョンは実際の値になり、評価、各ストアの判定、失効状態も加わりました。1つのネットワークにつき1分あたり30回まで確認でき、10分以内の同じ確認にはキャッシュから応答します。

POST /api/ssl-certificate
$ curl -X POST https://dnsrobot.net/api/ssl-certificate \
    -H "Content-Type: application/json" -d '{"domain": "github.com"}'
{
  "success": true, "domain": "github.com",
  "leafCertificate": { "daysToExpire": 39, "isValid": true, … },
  "trustStatus": { "isTrusted": true, "hasValidChain": true, … },
  "v2": { "state": "valid", "grade": "A+",
          "stores": { "mozilla": true, "chrome": true, … }, … }
}

SSLチェッカーに関するよくある質問

WebサイトのSSL証明書が有効か確認するにはどうすればよいですか?

上のSSLチェッカーにドメインを入力してください。証明書が有効といえるのは、有効期間内であり、確認したサイトの名前が記載され、主要なすべてのブラウザーが信頼するルートまでチェーンがつながり、失効していない場合です。結果ではこの4つをすべて確認し、問題のある項目を修正方法とともに示します。ブラウザーでは、鍵アイコンから開く証明書ビューアーで名前と日付はわかりますが、サーバーが送るチェーンや失効状態はわかりません。

SSL証明書の有効期限を確認するにはどうすればよいですか?

上でドメインを確認してください。結果には有効期限、残り日数、有効期間全体が目盛りで表示されます。ターミナルでは、サーバーの証明書にopenssl x509 -noout -enddateを実行すると日付が表示されます。2026年3月15日以降に発行されたパブリック証明書の有効期間は最長200日なので、更新は自動化すべきです。「履歴」ビューからは、カレンダーのリマインダーもダウンロードできます。

SSLチェック(SSLテスト)では何を確認しますか?

証明書(日付、名前、鍵、署名、認証レベル)、チェーンと、Mozilla、Chrome、Apple、Microsoftのルートストアでの信頼性、OCSPまたはCAのCRLによる失効状態、サーバーが受け付けるSSL 3.0からTLS 1.3までのプロトコルバージョン、暗号スイートと鍵交換、HSTSヘッダーです。問題があるごとに、A+〜Fの評価が下がります。

中間証明書とは何ですか?チェーンが不完全になるのはなぜですか?

中間証明書は、サイトの証明書に署名するCAの証明書で、それ自体はルートによって署名されています。サーバーが送る必要があります。サーバーが自身の証明書しか送らないと、チェーンは不完全になります。Chromeは不足分を取得することが多いためサイトは正常に見えますが、アプリやcurlなどのクライアントは失敗します。CAから提供されたフルチェーンのファイルをインストールしてください。

Chromeでは表示できるのに、アプリやほかのブラウザーでエラーになるのはなぜですか?

たいていは中間証明書の不足が原因です。Chromeは証明書に記載されたアドレスから中間証明書を取得し、FirefoxはCAがCCADBに開示した中間証明書をあらかじめ読み込んでいますが、モバイルアプリ、APIクライアント、Java、curlはそうしないため、同じサイトを拒否します。サーバー名(SNI)を送らずにデフォルトの証明書を受け取るクライアントや、一部のストアでしか信頼されていないルートでも、同じように結果が分かれます。どれが原因かは信頼チェーンでわかります。

2026年のSSL証明書の有効期間はどのくらいですか?

2026年3月15日以降に発行された証明書は最長200日で、それまでの398日から短縮されました。CA/Browser Forumの投票SC-081により、上限は2027年3月15日に100日、2029年3月15日に47日へと下がります。Let's Encryptは現在90日の証明書を発行しており、2027年2月からは64日、2028年2月からは45日の証明書になります。

SSLの評価A+、A、B、T、Mはそれぞれ何を意味しますか?

A+は、TLS 1.3、強力な暗号、6か月以上のHSTSを備えたサーバー上の信頼された証明書です。Aは追加の対策はないものの良好な設定で、A-はTLS 1.3がないか、WebサイトでHSTSがありません。Bは、TLS 1.0、TLS 1.1、RC4がまだ有効か、前方秘匿性のある暗号やAEAD暗号が提供されていないか、チェーンが不完全な状態です。最新のクライアントにも3DESやRC4が選ばれるとCになります。Tは信頼されていない証明書、Mは別の名前に発行された証明書で、どちらの場合もブラウザーが警告を表示します。

メールサーバーやほかのポートのSSL証明書も確認できますか?

できます。入力欄の横でポートを選ぶか、host:portの形式で入力してください。STARTTLSによるSMTPサブミッションは587、SMTPSは465、IMAPは993と143、POP3は995と110、DNS over TLSは853で、ほかのポートも指定できます。ポート25は、現時点では当サイトのサーバーから確認できません。メールサーバーにも証明書、チェーン、プロトコルについて同じチェックを行い、HSTSの確認だけを省きます。

SSL証明書が失効しているかどうかを確認するには?

チェッカーがCAに問い合わせます。まずサーバーがハンドシェイクにステープルしたOCSP応答、次にCAのOCSPレスポンダー、最後にCAの証明書失効リスト(CRL)を確認します。Let's Encryptをはじめ、一部のCAはすでにOCSPを運用していないため、その場合はCRLを確認します。ブラウザーはそれぞれ独自の方法で失効を確認するため、失効した証明書がどこでも必ずブロックされるとは限りません。

自分のWebサイトは量子コンピューターに対して安全ですか?

鍵交換は安全にできます。サーバーがX25519MLKEM768を受け付けていれば、これを提示するブラウザー(Chrome、Firefox、Appleの2025年版OS上のSafari)は、のちに量子コンピューターで解読されないようセッションを保護します。サーバーが受け付ける鍵交換グループと優先するグループは「プロトコル」ビューで確認できます。証明書自体は、現在も従来のRSAやECDSAの鍵を使っています。

SSLとTLSの違いは何ですか?

TLSはSSLの現代版です。SSL 2.0と3.0は1999年にTLS 1.0に置き換えられ、現在安全に使えるのはTLS 1.2と1.3だけです。SSLという名前が定着したため、「SSL証明書」や「SSLチェッカー」は、TLS証明書とそれを確認するツールを指します。証明書は、どのTLSバージョンでも同じように機能します。

このSSLチェッカーは無料ですか?確認した内容は保存されますか?

無料で、アカウントも不要です。1つのネットワークから1分あたり10回まで完全なチェックを実行できます。チェックは当サイトのサーバーから行うため、相手のサイトから見えるのは当サイトの接続で、あなたの接続ではありません。同じチェックをすぐに表示できるよう結果は10分間保持し、再チェックを選ぶと改めてチェックします。誰が何を確認したかのログは残しません。