概要
SSL/TLSとは、インターネット通信を暗号化して安全にする仕組みです。
あなたがAmazonでクレジットカード番号を入力するとき、その情報が第三者に盗まれないように「暗号化」されます。 この暗号化を担当しているのがSSL/TLSです。
URLバーに表示される鍵マーク🔒を見たことがありますか? これは「この通信はSSL/TLSで暗号化されているので安全ですよ」というサインです。
💡 このサイトもSSL/TLS対応https://itwords.jp の「https」の「s」が、SSL/TLSで暗号化されていることを示しています。
SSLとTLSの違い
TLS(Transport Layer Security)は、SSL(Secure Sockets Layer)の後継バージョンです。
歴史
- SSL 1.0 - 1994年(非公開、脆弱性あり)
- SSL 2.0 - 1995年(脆弱性あり、非推奨)
- SSL 3.0 - 1996年(脆弱性あり、非推奨)
- TLS 1.0 - 1999年(SSLの後継、SSL 3.0を改良)
- TLS 1.1 - 2006年
- TLS 1.2 - 2008年(現在も広く使われている)
- TLS 1.3 - 2018年(最新、高速・安全)
現在はTLSが標準ですが、「SSL」という名称が業界で定着しているため、 「SSL/TLS」「SSL証明書」と呼ばれることが多いです。
💡 覚え方
「SSL」は古い名前、「TLS」は新しい名前。でもみんな「SSL」って呼んでる。
HTTPとHTTPSの違い
HTTPは暗号化されていない通信、HTTPSはSSL/TLSで暗号化された通信です。
| 項目 | HTTP | HTTPS |
|---|---|---|
| 暗号化 | ❌ なし(平文) | ✅ あり(暗号化) |
| 盗聴リスク | ⚠️ 高い | ✅ 低い |
| URLの例 | http://example.com | https://example.com 🔒 |
| 鍵マーク | ❌ 表示されない | ✅ 表示される |
| Google評価 | ⚠️ 警告表示 | ✅ SEO優遇 |
| 使用場面 | ⚠️ 個人情報を扱わないサイト | ✅ ログイン、決済、個人情報入力 |
例え話:
HTTPは「ハガキ」で手紙を送るようなもの。誰でも読めてしまいます。
HTTPSは「封筒」で手紙を送るようなもの。中身は読めません。
SSL/TLSの仕組み(簡易版)
SSL/TLSは3つのステップで通信を暗号化します:
- ハンドシェイク(握手):
ブラウザとサーバーが「どの暗号化方式を使うか」を決める - 証明書の確認:
サーバーが「私は本物のAmazonです」という証明書を見せる - 暗号化通信:
決めた暗号化方式で、データを暗号化してやり取りする
💡 補足
SSL/TLSでは、AESなどの暗号化方式が使われています。
SSL/TLSが使われている場面
- HTTPS通信:WebサイトとブラウザのHTTPS通信全て
- オンラインバンキング:銀行サイトでの取引
- ECサイト:Amazon、楽天などでのクレジットカード入力
- SNS:Twitter、Instagram、FacebookなどのログインとID
- メール:Gmailなどのメール送受信(SMTP over SSL/TLS)
- VPN:リモートワークでの安全な通信
つまり、私たちが日常的に使うほとんどの通信でSSL/TLSが使われています。
SSL/TLS証明書とは?
SSL/TLS証明書とは、「このサーバーは本物ですよ」という証明書です。
例えば、偽のAmazonサイト(フィッシングサイト)があったとします。 SSL/TLS証明書があれば、ブラウザは「このサイトは本物のAmazonではありません」と警告を出してくれます。
詳しくはLet's Encrypt公式サイトやMDN Web Docs - TLSで確認できます。
証明書の種類
| 種類 | 認証レベル | 料金 | 用途 |
|---|---|---|---|
| DV証明書 (Domain Validation) | ドメイン所有確認のみ | 無料〜数千円/年 | 個人サイト、ブログ |
| OV証明書 (Organization Validation) | 組織の実在確認 | 数万円/年 | 企業サイト |
| EV証明書 (Extended Validation) | 厳格な企業審査 | 十数万円/年 | 銀行、ECサイト |
無料証明書:Let's Encryptが有名。個人サイトなら十分です。
HTTPSサイトを作る方法
VercelやNetlifyなどのホスティングサービスを使えば、自動的にHTTPS化してくれます。
手順(Vercelの場合):
- GitHubにコードをpush
- Vercelにデプロイ
- 自動的にSSL/TLS証明書が発行され、HTTPSになる
💡 このサイトもVercelでHTTPS化
特別な設定なしで、自動的にhttps://itwords.jpになりました。