Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なかなか楽にならないSSL/TLS証明書の話
Search
Tatsuro Shibamura
October 26, 2018
Technology
2
1.5k
なかなか楽にならないSSL/TLS証明書の話
Tatsuro Shibamura
October 26, 2018
Tweet
Share
More Decks by Tatsuro Shibamura
See All by Tatsuro Shibamura
Hack Azure! #5 - Geek of Azure Serverless
shibayan
0
72
.NET Conf 2020 Online - .NET 5 リリース記念パーティートーク
shibayan
0
8.1k
Terraform Provider for Azure に貢献してみた話
shibayan
0
500
Azure Functions と SendGrid の良い関係
shibayan
0
910
Azure Serverless を活用したリアルタイム Web のすべて
shibayan
1
2.6k
祝 東日本リージョン一般提供! Azure Application Insights 基礎と実践
shibayan
1
38k
.NET Conf 2018 Tokyo
shibayan
1
3.8k
最近の Azure App Service について
shibayan
0
1.2k
一休.com がどのように SendGrid と仲良く付き合っているか
shibayan
0
4.8k
Other Decks in Technology
See All in Technology
Building Static Websites with Sculpin
opdavies
0
1.4k
タイミーのBraze活用 ~PUSH通知を活用したレコメンド~
ozeshun
2
120
X-Correlation Injections (or How to break server-side contexts)
fransrosen
0
350
エンジニアリングマネージャーが紐解く、事業視点から組織文化まで、包括的アプローチの探求 / READYFOR
9ma3r
13
2.2k
20240825_bedrock_helpdesk_jp.pdf
gamogamo
0
130
Eventual Detection Engineering
ken5scal
0
350
JavaScript 以外の言語によるフロントエンド Web 開発が既に実用段階である話
jsakamoto
0
1.6k
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
170
React Aria で実現する次世代のアクセシビリティ
ryo_manba
1
140
目標設定と習慣化で今よりも一歩生産性を上げる
sansantech
PRO
7
2.2k
2024年版 運用者たちのLLM
nwiizo
2
280
Cloudflareスタックで月間1200万UUの経済メディアにアバター画像生成サービスを作る / Cloudflare Developer Platform for AI avatar service
nkzn
7
1.7k
Featured
See All Featured
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
109
6.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
22
1.7k
Fontdeck: Realign not Redesign
paulrobertlloyd
80
5.1k
A Modern Web Designer's Workflow
chriscoyier
690
190k
StorybookのUI Testing Handbookを読んだ
zakiyama
25
5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
22
3.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
27
1.6k
Six Lessons from altMBA
skipperchong
26
3.3k
What's in a price? How to price your products and services
michaelherold
241
11k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
How to Think Like a Performance Engineer
csswizardry
15
910
Being A Developer After 40
akosma
82
580k
Transcript
なかなか楽にならない 証明書の話 @shibayan NoOps Meetup Tokyo #2 SSL/TLS
はじめに • @shibayan • https://shibayan.jp/ • Microsoft MVP for Azure
• 最近はプロ無職
No "Uncomfortable" Ops • SSL/TLS 証明書の管理、凄くしんどくないですか? • 特殊な知識は必要ないので、割と誰でもできる • 12
ヵ月に 1 回ぐらいの作業 • 認証局からのメールで期限を思い出したり • スパムフォルダに入ったりして気が付かないことも • 非常に重要で、簡単な作業なのに、自動化があまりされてない • と感じています、個人的には
証明書発行の流れ (DV) • 認証局に作成した CSR を投げる • ドメインの所有を確認する • Whois
に登録されているメールアドレスにリンク送信 • 指定されたファイルをサーバーに置く • DNS で指定されたレコードを追加 • 証明書が発行される • 中間証明書と一緒にサーバーに配置したり、PFX にしたり
自動化されない理由 • 地味に自動化が難しい手順ばかり • CSR の作成、ドメイン所有の確認、証明書と秘密鍵の配置 • 証明書の期限は大体 12 ヵ月
• 手動でも何とかなってしまう雰囲気が出ている • そもそも認証局が自動化前提の作りになっていない
更新を忘れてしまうと • 当然ながら SSL/TLS 通信は上手くいかない • 証明書の検証に失敗するのでブラウザが警告画面を表示 • ブラウザ以外の通信でも同様 •
最近は常時 SSL や HSTS の流れによって致命傷に • http から https へのリダイレクトは一般的 • HSTS を使ってると有効期間内は強制的に https になってしまう
更新に失敗した例 • Windows Azure、11時間にわたる全世界的なストレージ障害。 原因はSSL証明書の失効 • https://www.publickey1.jp/blog/13/windows_azure11ssl.html • 致命的な問題に発展するのに、なかなか楽にならない
楽にしようとする動き • クラウドベンダーが認証局を持つ • AWS Certificate Manager • 外部の認証局とパートナーシップを結んでいる •
Azure Key Vault / App Service Certificate • Let’s Encrypt を利用している / ACME プロトコルの導入 • GCP の Managed SSL など数多くの例
AWS Certificate Manager • ELB / ALB / CloudFront /
API Gateway で使える • パブリック向けの場合 • ワイルドカード証明書も発行できる • 自動的に証明書の更新を行ってくれる • ドメインが利用中かつ SSL/TLS で外部からアクセス可能な場合 • 無料で使える!
Azure Key Vault • DigiCert と GlobalSign と連携している • 予めサインアップしてアカウント情報を追加しておく
• 事前に指定したポリシーに従って更新してくれる • 自己署名証明書の発行も出来る • 使いどころは微妙… • 恐らく有料 • 試す気にすらならない…
App Service Certificate は特殊 • GoDaddy と連携している (なぜ…) • Azure
Portal から購入出来る • 証明書と秘密鍵は Key Vault に格納される • 自動で更新もしてくれる (自動で課金される) • もちろん有料 • 1 ドメイン $69.99 / ワイルドカード $299.99
Let’s Encrypt • ACME プロトコルに基づいた自動での証明書発行 • 公式の certbot を使って管理可能 •
v2 からはワイルドカードでの発行も出来る • HTTP か DNS を利用してドメイン所有の確認 • 最近のパブリッククラウドでは Managed DNS は当たり前の機能 • 無料で使える!
ACME プロトコルについて • 認証局が証明書発行に必要な機能を定義している • REST ベースのシンプルな API • クライアントも世の中にはたくさんあるので簡単
• 対象のドメイン全てに対して HTTP か DNS で確認される • 特殊なファイル、もしくは TXT レコードを書き込む
certbot が使えるケース • nginx や Apache を直接公開している場合に使える • Let’s Encrypt
公式クライアントなので安心 • 各クラウドベンダーの Managed DNS 対応 (ただし Azure 除く) • 基本は Linux のみサポート • Windows 向け PR も上がっているようだが…
余談 : キーの管理について • 最近のパブリッククラウドではキー管理 / HSM は以下略 • HSM
= Hardware Security Module • AWS は KMS / CloudHSM • GCP は Cloud KMS / Cloud HSM • Azure は Key Vault
所感 • AWS Certificate Manager が突出して便利 • EC2 に付けれないけど、普通は LB
/ CF 挟むでしょう • Let’s Encrypt 周りを面倒見てくれる Managed SSL 良さ • ワイルドカードのサポートが入れば嬉しい • Azure は無料で使える SSL 証明書がない • 何でだ… • しかも GoDaddy でも結構高い
Azure と Let’s Encrypt の歴史
我慢できず自分で作った人たち • Web Apps 専用 • https://github.com/sjkp/letsencrypt-siteextension • App Service
向け • https://github.com/shibayan/azure-appservice-letsencrypt • Key Vault 向け • https://github.com/shibayan/azure-keyvault-letsencrypt
まとめ • SSL/TLS 証明書の管理は自動化出来る • DV 証明書の場合に限る、OV / EV は難しそうではある
• AWS なら ACM、GCP なら Managed SSL を使う • 大体は LB にアタッチできれば問題ないでしょう • Azure はお金を払うか、コミュニティ作成の Issuer を使う • Let’s Encrypt に最大限の感謝を
おまけ : Key Vault は割と便利 • SSL/TLS 証明書に特化した機能あり • Azure
の各サービスは Key Vault に格納されたキーを使える • 今のところは App Service / Application Gateway / Front Door • ひっそりと CSR 作成機能もある • 認証局から貰った証明書をマージして完成形に出来る • キーは安全に格納したまま発行できる