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.6k
なかなか楽にならない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
73
.NET Conf 2020 Online - .NET 5 リリース記念パーティートーク
shibayan
0
8.2k
Terraform Provider for Azure に貢献してみた話
shibayan
0
500
Azure Functions と SendGrid の良い関係
shibayan
0
930
Azure Serverless を活用したリアルタイム Web のすべて
shibayan
1
2.6k
祝 東日本リージョン一般提供! Azure Application Insights 基礎と実践
shibayan
1
39k
.NET Conf 2018 Tokyo
shibayan
1
3.8k
最近の Azure App Service について
shibayan
0
1.2k
一休.com がどのように SendGrid と仲良く付き合っているか
shibayan
0
4.9k
Other Decks in Technology
See All in Technology
MOSH_companydeck_202410
mosh_inc
0
120
WebRTC と AI の組み合わせ
tnoho
0
390
KMPプロジェクトでマニュアルDIを使う選択
rmakiyama
0
110
生成AIの活用パターンと継続的評価
asei
6
660
S3上のログを分析したいだけなのに
mitsuo_sys
0
130
自動テストの信頼性を高めるミューテーションテストの活用に向けて
tarappo
2
110
AWS CDK を活用した 大量 AWS アカウントへのプロビジョニング例 〜 SaaSus Platform の場合 〜 於 JAWS-UG CDK支部 #17
yaggy
1
180
実は仲良し?Amplify Gen2と生成AI
mkdev10
1
180
巨大企業でDX革新を起こすということ BTCONJP 2024
yamaken66
1
490
Azure AI servicesと歯のおはなし/AzureTravelers_Fukuoka2024_baba
nina01
1
110
プログラミング写経のすすめ
natsutan
0
190
0x5F3759DF
ykozw
0
370
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
A Tale of Four Properties
chriscoyier
156
22k
Facilitating Awesome Meetings
lara
49
6k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
It's Worth the Effort
3n
183
27k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
7.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Rails Girls Zürich Keynote
gr2m
93
13k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
41
9.2k
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 作成機能もある • 認証局から貰った証明書をマージして完成形に出来る • キーは安全に格納したまま発行できる