SSL/TLSとは?
SSL(Secure Sockets Layer)とTLS(Transport Layer Security)は、ネットワーク上の通信を保護する暗号化プロトコルです。 TLS は SSL の近代的な後継者ですが、「SSL」は両方を参照するために一般的に使われています。 これらのプロトコルは HTTPS を有効にし、ブラウザーとサーバー間でデータを暗号化します。
SSLとTLS:短い歴史
| バージョン | 年間行事 | ステータス |
|---|---|---|
| SSL の 1.0 | 1994年(平成6年) | 決して解放されなかった(違法) |
| SSL 2.0の | 1995年(1995年) | 非推奨(無担保) |
| SSL の 3.0 | 1996年(平成8年) | 廃止(POODLE脆弱性) |
| TLS 1.0の特長 | 1999年(平成11年) | 免責事項 |
| TLS 1.1の特長 | 2006年(平成18年) | 免責事項 |
| TLS 1.2の特長 | 2008年10月20日 | 現在の標準 |
| TLS 1.3の特長 | 2018年12月18日 | 最新, おすすめ |
現代のシステムは、TLS 1.2 または TLS 1.3 のみを使用する必要があります。
TLSの仕組み
TLSハンドシェイク
1. クライアントこんにちは: ブラウザは、サポートされているTLSバージョンと暗号スイートを送信
2. サーバーこんにちは: サーバは TLS バージョンと暗号スイートを選択します。
3. 証明書:サーバーはSSL証明書を送信します
4. 鍵交換:セキュアキー交換(暗号スイートによる変動)
5. 終了しました: 暗号化されたセッションが確立されました
Client Server
|-- Client Hello -------------->|
|<-- Server Hello --------------|
|<-- Certificate ---------------|
|<-- Key Exchange --------------|
|-- Key Exchange -------------->|
|-- Finished ------------------>|
|<-- Finished ------------------|
|<======= Encrypted Session ===>|
TLS 1.3はこれを単一の往復に減らします、性能を改善します。
SSL/TLS 証明書
証明書とは何ですか?
- サブジェクト: ドメイン名(s) 証明書カバー
- 発行者:それを発行した証明書の権限(CA)
- 期間:出発日と満了日
- 公開鍵: 暗号化された接続を確立するため
- Signature:CAの暗号署名
証明書の種類
ドメイン検証済み(DV): ドメインの所有権を約束する- 数分で発行
- 無料(暗号化しましょう)または低コスト
- パドロック、組織情報を表示
- ビジネス検証が必要です
- 証明書の詳細で組織名を表示
- 高い信頼、適度な費用
- 厳格なアイデンティティ検証
- 以前はグリーンバー(ブラウザはこれを削除)を示した
- 最も高いコスト、最高信頼
証明書の適用範囲
単一ドメイン: 1つのドメイン(example.com)をカバー ワイルドカード:すべてのサブドメイン(*.example.com)をカバー マルチドメイン(SAN): 複数の特定のドメインをカバーSSL/TLSの実装
Let's Encryptによる無料の証明書
# Using Certbot
sudo certbot --nginx -d example.com -d www.example.com
# Auto-renewal
sudo certbot renew --dry-run
クラウドプロバイダー証明書
ほとんどのクラウドプラットフォームは、無料の自動更新証明書を提供します。
- Cloudflare:プロキシドメインの自動
-Google Cloud:管理されたSSL証明書
証明書の検証
ブラウザは証明書を認証します:
1。 証明書チェーンを信頼できるルートCAにチェックする
2. 証明書の有効期限が切れていないことを確認する
3. ドメインマッチの確認
4. 取消状況の確認(CRL/OCSP)
SSL/TLSベストプラクティス
サーバー構成
TLS 1.2+ を使用して下さい: 無効なSSL 3.0、TLS 1.0、TLS 1.1ssl_protocols TLSv1.2 TLSv1.3;
Strong Cipher Suites : 近代的な、安全な暗号を優先して下さい
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
HSTS:強制HTTPS(HSTS用語集エントリを参照)
証明書管理
- 自動更新:証明書の有効期限(Let's Encryptの90日間)
- モニターの有効期限: 証明書が期限切れになる前にアラートを設定する
- CAAレコードを使用する: CA が証明書を発行できる制限
SSL/TLSの確認
DomScanの使用:curl "https://domscan.net/v1/health?domain=example.com"
# Returns SSL validity, issuer, expiration
OpenSSLの使用:
openssl s_client -connect example.com:443 -servername example.com
オンラインツール: SSL Labs(ssllabs.com/ssltest)は、包括的な分析を提供します。
一般的なSSLの問題
ミックスコンテンツ:HTTPリソースをロードするHTTPSページ(ブラウザによってブロック) 証明書 Mismatch: 証明書はドメインに一致しません 有効な証明書:証明書の有効期間が終了 不完全な鎖:中間の証明書を欠くことSSL/TLS はオプションではありません。すべてのウェブサイトは HTTPS を使用してセキュリティと SEO の利点を使用する必要があります。