TLS証明書 - 暗号化全般

暗号化全般 | IT用語集

TLS証明書とは

TLS証明書(一般に「SSL証明書」とも呼ばれる)は、Webサイトの身元を証明し、ブラウザとサーバー間の暗号化通信(HTTPS)を実現するためのデジタル証明書です。X.509形式に従って発行されます。

TLS証明書の役割:

  • 身元証明:Webサイトが正当な運営者によるものであることを証明
  • 通信の暗号化:ブラウザとサーバー間の通信を暗号化
  • データの完全性:通信内容が改ざんされていないことを保証
  • SEO効果:Googleはhttpsサイトを優遇

証明書の種類

検証レベル別

種類 検証内容 用途
DV(Domain Validation) ドメイン所有権のみ 個人サイト、ブログ
OV(Organization Validation) 組織の実在性 企業サイト
EV(Extended Validation) 厳格な組織審査 金融、EC

ドメインカバレッジ別

  • 単一ドメイン証明書:1つのFQDN(例:www.example.com)
  • ワイルドカード証明書:サブドメインすべて(例:*.example.com)
  • マルチドメイン証明書(SAN):複数の異なるドメイン

AIエンジニアとしての実体験

マルチテナントAIサービスの構築で、動的にサブドメインを発行するシステムにワイルドカード証明書を導入しました。Let's Encryptを使用してコストを抑えつつ、自動更新を実現しています。

# certbot でワイルドカード証明書を取得(DNS認証)
sudo certbot certonly \
  --manual \
  --preferred-challenges dns \
  -d "*.example.com" \
  -d "example.com"

# DNS TXTレコードの設定後、認証を完了
# _acme-challenge.example.com に指定された値を設定

自動更新の設定

# cronでの自動更新
0 3 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

# systemd timerでの自動更新(推奨)
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer

自社サーバー運用への応用

証明書の確認コマンド

# リモートサーバーの証明書確認
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | \
  openssl x509 -noout -dates -subject -issuer

# 証明書の有効期限確認スクリプト
check_expiry() {
  expiry=$(echo | openssl s_client -connect $1:443 -servername $1 2>/dev/null | \
    openssl x509 -noout -enddate | cut -d= -f2)
  echo "$1: $expiry"
}

証明書選択のガイドライン

  • 個人・小規模サイト:Let's Encrypt(無料、DV)
  • 企業サイト:商用CA(DigiCert、GlobalSignなど)のOV
  • 金融・ECサイト:EV証明書を推奨

関連ブログ記事

最新動向(2026年)

証明書の短命化

Let's Encryptの90日証明書に続き、業界全体で証明書有効期間の短縮が進んでいます。将来的には45日や7日の証明書も検討されています。

自動化の標準化

ACMEプロトコルによる証明書の自動発行・更新が標準となり、手動での証明書管理は減少しています。

トラブル事例と対策

⚠️ 証明書の有効期限切れ

問題:更新を忘れてサイトがダウン

対策:certbotなどで自動更新を設定、監視ツールでアラート設定

⚠️ 中間証明書の不足

問題:一部のブラウザで「信頼されない」エラー

対策:fullchain.pemを使用、SSL Labsでテスト

権威あるリソース

関連用語

この用語についてもっと詳しく

TLS証明書に関するご質問やSSL設定のご相談など、お気軽にお問い合わせください。