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 を設定。

権威あるリソース

関連用語

📝 関連ブログ記事

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

HTTPS導入のご相談