HTTPS - 暗号化全般

暗号化全般 | IT用語集

HTTPSとは

HTTPS(HTTP Secure / HTTP over TLS)は、HTTPプロトコルをTLS(Transport Layer Security)で暗号化したセキュアな通信プロトコルです。ポート443を使用し、クライアント(ブラウザ)とサーバー間のすべての通信を暗号化します。

2014年のHTTPS Everywhere運動以降、GoogleはHTTPSをSEOランキング要因に追加し、現在ではほぼすべてのWebサイトがHTTPSを使用しています。Let's Encryptの登場により、無料でTLS証明書を取得できるようになりました。

HTTPSのメリット

  • 通信の暗号化:盗聴からデータを保護
  • データ完全性:改ざんを検知
  • 認証:正しいサーバーと通信していることを保証
  • SEO向上:GoogleがHTTPSを優遇
  • 信頼性:ブラウザの「鍵」アイコンでユーザーに安心感

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

AIエンジニアとして、機械学習モデルのAPIを公開する際、HTTPSは必須です。以下はNginxでのHTTPS設定例:

server {
    listen 80;
    server_name api.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name api.example.com;
    
    ssl_certificate /etc/letsencrypt/live/api.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/api.example.com/privkey.pem;
    
    # セキュリティヘッダー
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "DENY" always;
    
    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Let's Encryptによる無料証明書

# certbotのインストール(Ubuntu)
sudo apt install certbot python3-certbot-nginx

# 証明書の取得と自動設定
sudo certbot --nginx -d api.example.com

# 自動更新の確認
sudo certbot renew --dry-run

HSTS(HTTP Strict Transport Security)

HSTSは、ブラウザに対してHTTPSのみを使用するよう強制するセキュリティ機構です:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

トラブル事例と対策

⚠️ Mixed Content警告

症状:HTTPSページでHTTPリソースを読み込んでいる

対策:すべてのリソースをHTTPSで配信。Content-Security-Policy: upgrade-insecure-requests を設定。

2025〜2026年の最新動向

  • HTTP/3(QUIC)の普及:Chrome、Firefox、SafariすべてがHTTP/3対応。主要サービスの多くがHTTP/3を有効化
  • TLS 1.3の完全移行:TLS 1.0/1.1は主要ブラウザで無効化済み。TLS 1.2→1.3への移行が加速
  • 証明書の短期化:Apple等がSSL証明書の有効期間を47日に短縮する方針を提案(2026年〜)
  • 耐量子TLS:Cloudflare・Google等が量子コンピュータ対応のPQC鍵交換の試験を実施
  • PrivacyCA:ChromeのCertificate Transparency Policyの強化

よくある質問(FAQ)

Q. HTTPSを使うだけでサイトは安全ですか?

HTTPSは通信の暗号化を保証しますが、それだけでは不十分です。XSS、SQLインジェクション、CSRF等の脆弱性はHTTPSとは別に対策が必要です。HTTPSはあくまで「通信の安全性」であり、「アプリケーションの安全性」は別の話です。

Q. Let's Encryptの証明書は商用利用できますか?

はい、完全に無料で商用利用可能です。ただし、有効期間が90日と短いため自動更新設定が必要です。CertbotやACMEクライアントを使ってcronで自動更新することが推奨されます。

権威あるリソース

関連用語

📝 関連ブログ記事

【2026年最新】OpenSSLの深刻な問題とは?

HTTPS導入のご相談