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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tatsuro Shibamura
October 26, 2018
Technology
1.9k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
なかなか楽にならないSSL/TLS証明書の話
Tatsuro Shibamura
October 26, 2018
More Decks by Tatsuro Shibamura
See All by Tatsuro Shibamura
# Azure Cosmos DB パフォーマンス最適化入門 - 設計・開発・運用の実践テクニック
shibayan
0
540
Hack Azure! #5 - Geek of Azure Serverless
shibayan
0
130
.NET Conf 2020 Online - .NET 5 リリース記念パーティートーク
shibayan
0
9.9k
Terraform Provider for Azure に貢献してみた話
shibayan
0
650
Azure Functions と SendGrid の良い関係
shibayan
0
1.3k
Azure Serverless を活用したリアルタイム Web のすべて
shibayan
1
3k
祝 東日本リージョン一般提供! Azure Application Insights 基礎と実践
shibayan
1
42k
.NET Conf 2018 Tokyo
shibayan
1
4.1k
最近の Azure App Service について
shibayan
0
1.4k
Other Decks in Technology
See All in Technology
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
140
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
270
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
160
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
110
Agile and AI Redmine Japan 2026
hiranabe
4
480
コミットの「なぜ」を読む
ota1022
0
120
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
2
420
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.9k
レガシーな広告配信システムでのAI駆動開発/運用の挑戦
i16fujimoto
0
120
AIが自律的に回る開発ループを設計してチーム開発に組み込む
nekorush14
0
130
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
520
元銀行員がAIだけでアプリを量産!「バイブコーディング実演セミナー 」
tatsuya1970
0
110
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
860
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Why Our Code Smells
bkeepers
PRO
340
58k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
240
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
430
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
490
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
How GitHub (no longer) Works
holman
316
150k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
230
Between Models and Reality
mayunak
4
350
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 作成機能もある • 認証局から貰った証明書をマージして完成形に出来る • キーは安全に格納したまま発行できる