画像ツール一覧

SSL/TLS

Secure Sockets Layer / Transport Layer Security

通信・ネット

TLSは、通信相手の認証、通信内容の暗号化、改ざんの検知を提供するプロトコルです。HTTPSではHTTPをTLSなどで保護します。SSLは旧来の名称で、現在の設定では後継のTLSを使います。

🐾 猫で例えると?

白い布の隙間から鋭い眼光を覗かせる茶トラ猫。外部の脅威から身を隠し、安全な領域から通信を確立するSSL/TLSの暗号化通信の概念を表現
外部の脅威から身を隠し、安全な暗号化トンネルから様子をうかがう

布の下に隠れる茶トラは、外から中身を見えにくくする暗号化のイメージです。ただし、TLSでも接続先IPや通信量などがすべて隠れるわけではありません。また、布を抜けた先、つまり通信の両端では内容を扱えます。暗号化は経路を守るもので、接続先サイトの誠実さまで保証しません。

🐾 PR

💻 IT現場における「SSL/TLS」とは?

インターネット上のデータは、基本的にはリレーのバトンのように様々なルーターを経由して目的地に届きます。暗号化されていないHTTP通信は、ハガキをそのまま送るようなもので、通信を観測できる立場の第三者に、内容(パスワードやクレジットカード情報など)を読まれるおそれがあります。

そこでSSL/TLSを導入し、通信をHTTPS化することで、データを「開けられない強固なカプセル」に包んで送ります。現在では「SSL」という言葉が一般的に使われていますが、実態としてはより安全性が強化された後継規格である「TLS(Transport Layer Security)」が使用されています。

⚠️ SSL/TLSの仕組みと注意点

TLSのハンドシェイクでは暗号方式や鍵を合意し、Webでは通常、サーバー証明書を検証します。証明書の名前がアクセス先と一致するか、有効期限や信頼の連鎖に問題がないかも重要です。ドメインの確認ができても、そのサイトの販売商品や説明が安全・正確である証明にはなりません。

💡 サーバーでのSSL/TLS設定例

次はNginxのHTTPS設定の抜粋です。対象ドメインの証明書と秘密鍵が存在し、Nginx/OpenSSLが指定するTLSバージョンに対応していることが前提です。HTTPからの転送や証明書の自動更新は別途設定します。

# NginxのHTTPS設定の抜粋
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
}

現場では、無償で利用できるLet's Encryptなどを活用して証明書を自動更新する仕組みを構築するのが一般的です。古いプロトコル(SSL 3.0やTLS 1.0/1.1)は脆弱性が発見されているため、サーバー側の設定で明示的に無効化する必要があります。

🛠️ SSL/TLSを賢く使うためのポイント

証明書の更新、暗号化する範囲、HTTPとの混在を確認します。

布の中の茶トラを外の視線から守るように、TLSは通信経路の内容を保護します。証明書の警告を無視せず、更新が成功しているか確かめ、接続先そのものの安全性とは分けて考えましょう。