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サイト@WordCampHaneda 2019 / wordcampha...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
GENKI TANIGUCHI
April 20, 2019
Technology
0
250
今日からはじめるSSLサイト@WordCampHaneda 2019 / wordcamphaneda2019
GENKI TANIGUCHI
April 20, 2019
Tweet
Share
More Decks by GENKI TANIGUCHI
See All by GENKI TANIGUCHI
20250524OkayamaWordPressMeetupそのバックアップ、復元できますか?
gtaniguchi
0
290
WP Zoom Up CMタイムLT-20210910 / wpzoomupcmlt20210910
gtaniguchi
0
59
WP Zoom Up CMタイムLT / wpzoomupcmlt20210513
gtaniguchi
0
85
20201022_レンサバ座談会@Lightning勉強会 / rspaneldiscussion
gtaniguchi
0
80
高コスパ高負荷耐性サイトの作り方 / mtddc-meetup-tokyo-2020-letsusecdn
gtaniguchi
0
230
さくらの夕べ コンテンツブースト機能概要/howtousecontentboost
gtaniguchi
0
12k
レンタルサーバの設定でできるWordPressの高速化 / 20190615_WebPerfomanceSeminor
gtaniguchi
0
830
WordPressを始めよう。サーバーのこと教えて!@WordCamp男木島2018 /tellmeabouttheserver
gtaniguchi
0
1.3k
レンサバを落とさないお付き合いの方法@WordCamp大阪2018
gtaniguchi
2
770
Other Decks in Technology
See All in Technology
三菱UFJ銀行におけるエンタープライズAI駆動開発のリアル / Enterprise AI_Driven Development at MUFG Bank: The Real Story
muit
10
20k
問い合わせ自動化の技術的挑戦
recruitengineers
PRO
2
110
LY Tableauでの Tableau x AIの実践 (at Tableau Now! - 2026-02-26)
yoshitakaarakawa
0
1.2k
What's new in Go 1.26?
ciarana
2
280
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
14k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
44k
LINEヤフーにおけるAI駆動開発組織のプロデュース施策
lycorptech_jp
PRO
0
380
社内でAWS BuilderCards体験会を立ち上げ、得られた気づき / 20260225 Masaki Okuda
shift_evolve
PRO
1
150
Microsoft Fabric のワークスペースと容量の設計原則
ryomaru0825
2
230
社内ワークショップで終わらせない 業務改善AIエージェント開発
lycorptech_jp
PRO
1
440
Claude Cowork Plugins を読む - Skills駆動型業務エージェント設計の実像と構造
knishioka
0
230
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
930
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
92
The Invisible Side of Design
smashingmag
302
51k
Un-Boring Meetings
codingconduct
0
220
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
72k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
210
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.7k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
Utilizing Notion as your number one productivity tool
mfonobong
4
240
Context Engineering - Making Every Token Count
addyosmani
9
730
Deep Space Network (abreviated)
tonyrice
0
85
Rails Girls Zürich Keynote
gr2m
96
14k
Transcript
WordCamp Haneda 2019 今日からはじめるSSLサイト。SSL化のリスクと対処法。 2019/04/20 (C) Copyright 1996-2016 SAKURA Internet
Inc さくらインターネット株式会社 技術本部レンタルサーバチーム 谷口元紀
自己紹介 2 谷口元紀(たにぐちげんき) 来歴 2016年さくらインターネット入社 2004年からWebディレクターとして制作会社、事業 会社などで勤務 さくらインターネットでのお仕事 レンタルサーバ/SSL ドメイン販売/CDN
のサービス企画等を担当
今日からはじめるSSLサイト 3
本日のお品書き • SSLってそもそも何?何のためにあるの? • WebサイトSSL化のチェックポイント • WordPressサイトだからハマるポイント • SSL化するリスクはあるの? 4
SSLって何? 5
SSLって何? • SSL(Security Sockets Layer)はインターネット上 でデータを暗号化してやり取りする仕組み。 • 現在はTLS(Transport Layer Security)が主流だ
けど、SSLが一般的すぎるので本日は「SSL」で 進めます。 6
SSLって何? • サイト(サーバ)とブラウザの通信を暗号化 • 通信相手を担保(なりすまし防止) • 改ざんの防止 • ブラウザの警告表示防止 7
通信が暗号化される • ウェブサイトのサーバとエンドユーザのブラウ ザ間の通信を暗号化します。 8 ※通信相手のIPアドレス/ドメインは暗号化されません。 ※通信相手とのデータ通信量はおおまかに予想可能です。
なりすましの防止 • ドメインを詐称することを防止します。 9 認証局のお墨付きにより、通信先のドメイン(場合によって組 織)が担保される example.jp を名乗ってよい 認証局 example.jp
だよー
なりすましの防止 • ドメインを詐称することを防止します。 10 証明書が無いと example.jp を名乗ってSSL通信することはで きない。 example.jp を名乗ってよい
認証局 example.jp だよー example.jp だよー 悪意のある偽物
改ざん防止 • データの改ざんを防ぎます。 11 データの目録のようなものを一緒に送るので、途中で悪意の ある第三者に改ざんされた場合検出ができる。
裏を返すと、SSLを使わなければ 盗聴/改ざん/なりすまし が可能ということに。 12
平文インターネットは全裸闊歩と同義 SSLのおかげで… 13
SSLって何? • ECサイトや銀行サイトを安心して使える • e-Taxで確定申告できる • 検索ワードなどが中間者に漏れない 14
個人情報だけじゃない、 インターネット通信のプライバシーを守る のがSSLです。 15
おさらい • 平文インターネット通信は危険 • 暗号化だけじゃないSSLの役割 • SSLでも完璧じゃないけどかなりの部分は担保 できる 16
17 WebサイトのSSL化で注意するポイント
WebサイトのSSL化で注意するポイント • httpソースのファイルを抹殺する • リダイレクトをする • サーチコンソールなどの切り替えを忘れない 18
サイトをSSL化するリスクってあるの? 19 httpソースの抹殺とは
httpソースのファイルを抹殺するhttpソースのファイルを抹殺する • Mixed content警告→最近は出ない • httpソースの読み込みをブロックするので… • cssが読み込まれないなどでデザインが崩壊 • ので…原因切り分けがむずかしい
20
httpソースのファイルを抹殺するhttpソースのファイルを抹殺する • DeveloperToolsで見てみましょう • スクリプト系はブロック、画像はそのまま表示 21 →詳しくは「mixed content 実例」で一番上に出てくるGoogleさんの記事を読みましょう。
httpソースのファイルをなくすことで アドレスバーに鍵マークが表示されます 22
サイトをSSL化するリスクってあるの? 23 リダイレクトの重要性
リダイレクト • リダイレクトとは… • http://example.jp → https://example.jp へ転送すること • 自動でやってくれるレンタルサーバもあります。
ConoHa WINGさん。 • httpsしか使えないドメインもある(.devとか) ※これはこれでブラウザ実装とかしててややこしい 24
なぜリダイレクトが必要なのか 25
リダイレクト • Googleでhttp://example.jpが登録されている →リダイレクト設定しないとhttpsのURLは認識さ れない。 • 301(Moved Permanently)で転送しましょう。 • 「引っ越しました、お気に入り変更してください」
は駄目です。(永遠にhttpへアクセスが来る) 26
27 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$
https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> よくある .htaccess の書き方
サイトをSSL化するリスクってあるの? 28 HSTSというリダイレクト方法
HSTSについて • HSTS(HTTP Strict Transport Security) • 一度HSTS情報を受け取ったら次からはhttpと 打っても勝手にhttpsで繋ぐ仕組み •
サーバ側のリダイレクトと異なりお気に入りを 変更しなくても2回目以降httpsで接続するので セキュア 29
HSTSについて 30 サーバサイドリダイレクトの場合 http://example.jpでお願い! https://example.jpにアクセスして! OK、じゃhttpsで!
HSTSについて 31 HSTSの場合1回目 http://example.jpでお願い! https://example.jpにアクセスして! HSTSリダイレクトは31536000秒キャッ シュしていいよ! OK、じゃhttpsで!
HSTSについて 32 HSTSの場合2回目 OKじゃhttpsで通信しましょう! http://example.jpって入力されたけ ど前にアクセスしたときHSTSでhttps アクセスしろって言われてたなー。 じゃ、https://example.jpで! ※「前にアクセスした」時にHSTSがあったのでその情報に従っている。
Preload HSTSについて 33 HSTSの場合、絶対最初の1回はhttpのアクセスが発生する。 共有リストとブラウザの実装でこれを回避するのがPreload HSTS。 あらかじめhttpsでアクセスするサイトをリストに登録しておくと初回から httpsでアクセスしてくれる。 OKじゃhttpsで通信しましょう! http://example.jpって入力されたけ
ど、Preload HSTSのリスト見たらhttps の対象になってるなー。 じゃ、https://example.jpで! ※あらかじめhttpsでアクセスすべしリストを読んで予習しているので初回からhttps。
HSTSについて • キャッシュするので確認時に問題になることが • 対象ドメインは未来永劫httpsしか使わない覚 悟で設定する。対応が曖昧な場合は避ける • ; includeSubDomains をつけると配下ドメインが
すべてhttpsアクセスに。 34
HSTS設定時は気をつけて実施しましょう 35
おさらい • 鍵マークのためにMixed contentは完全に解決 しておく • リダイレクトは必ずする • HSTSについて知っておく 36
37 WordPressサイトのSSL化で注意するポイント
WordPressサイトのSSL化で注意する点 • 環境変数HTTPS • ブラウザキャッシュ 38
サイトをSSL化するリスクってあるの? 39 環境変数について
環境変数HTTPS • 環境変数HTTPSのon/offでコンテンツURLを出し 分けているWordPress。 • これが無いとhttps://example.jp でアクセスした ときにデザインが崩れたりする。 (cssのURLを動的に書き出しているので) 40
環境変数ってなに? 41 <? phpinfo(); ?> と書いたファイルを置いて アクセスすると見れます。
環境変数HTTPS • レンタルサーバの仕様によって無い場合があ る • さくらのレンタルサーバも2018年4月まではこの パターンでした 42
環境変数の存在を知ると、 サーバ引っ越しや色々なサーバを触れる 時にとっても役に立ちます! 43
サイトをSSL化するリスクってあるの? 44 ブラウザキャッシュに気をつける
ブラウザキャッシュ問題 SSL化後の確認時に発生するトラブル • リダイレクトループ • デザイン崩れ 45
ブラウザキャッシュ問題 • ほとんどがブラウザキャッシュによるもの • 別ブラウザでの確認をおすすめします 46
おさらい • SSL化の際には環境変数要因でデザイン崩れ などがありえる • SSL化後の確認時はブラウザキャッシュに注意 47
サイトをSSL化するリスクってあるの? 48 サイトをSSL化するリスクってあるの?
サイトをSSL化するリスクってあるの? • 設定ミス • 失効 • 更新の手間(更新忘れ) • 障害点の追加 49
サイトをSSL化するリスクってあるの? 50 SSL証明書の設定ミス
設定ミス • 設定ミスの場合、最悪サイトが表示されません • 中間証明書忘れ、間違いが非常に多い 51
なぜミスは起きるのか? -----BEGIN CERTIFICATE----- MIIGDjCCBPagAwIBAgIQNTXQBdLiRBFQHZ/sfHvMhDANBgkqhkiG9w0BA QsFADBpMQswCQYDVQQGEwJKUDEqMCgGA1UEChMhSmFwYW4gUmV naXN0cnkgU2VydmljZXMgQ28uLCBMdGQuMS4wLAYDVQQDEyVKUFJTIE RvbWFpbiBWYWxpZGF0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTE5MDQw ODA3MDYwMVoXDTIxMDQzMDE0NTk1OVowIjEgMB4GA1UEAxMXc3Rh Z2UxLnNzbC5zYWt1cmEuYWQuanAwggEiMA0GCSqGSIb3DQEBAQUAA4 IBDwAwggEKAoIBAQDly4gvNMBPt7I/9RpUKF9IEGqiqm9urqr3VYdvflQjb
gCy56dOmr0ibW9A5vu0HlFGNIshKl+DZIz5UDvKxbzvAqmhCSSrDh18XFIZ ezSJy4m0LJnFmBVKnZqrwDZT88C1g6Gh+t3B02Cczy7gQO7vxdkoM/Go+ hT09RtcB6H4ivGB4A6eDjLi0yanqYl6P+PWqFAfhC/6Q42wOQpTVQW852 ZElAnTRgzMLobPXcFcHLmC7zrFUDamNady315pDXreYIkeHiACIw/pXyM3 WNHfgpkiVpIaiW1pdLLqgEPJe2AlMZIb1UchGRAMbWnONXUxWzpshH8c jkScNBpfzWBfAgMBAAGjggL3MIIC8zAfBgNVHSMEGDAWgBS7OupXYng MMq0fsnv2HQYiluGr8DA9BggrBgEFBQcBAQQxMC8wLQYI 52
なぜミスは起きるのか? • SSL証明書は一目見て何かわからない 53
中間証明書って何? • SSL証明書は多層構造 54 • サーバー証明書 →サーバに入ってる • 中間証明書 →サーバに入ってる
• ルート証明書 →PC(ブラウザ)に入ってる
中間証明書って何? • ルート証明書は中間証明書を、中間証明書は サーバ証明書を署名している。 • 中間を忘れるとルート→サーバとなり署名 チェーンが成立しない • 不正な証明書と見なされてサイトが閲覧できな くなる
55
中間証明書って何? 中間証明書は とても大事と覚えておいてください! 56
中間証明書関連の問題でややこしいポイント • 一部のブラウザで一部の証明書を使う場合 勝手にブラウザが中間証明書を補完する • 結果、自分は大丈夫でも他のブラウザでサイト が見えない場合がある 57
中間証明書関連の問題でややこしいポイント • SSLの設定をしたらSSLチェッカーで確認する! https://www.ssllabs.com/ssltest/ 58
サイトをSSL化するリスクってあるの? 59 スコアを上げる必要はありません!
無理にA+にしなくてもいい理由 • 意味がわからないままA+にすると閲覧できな いブラウザなどが出てくる • トラブル発生時に解決が難しくなる • 深刻な問題はブラウザがブロックしてくれる 60
サイトをSSL化するリスクってあるの? 61 失効リスクについて
失効リスク • SSL証明書は失効するとサイトが見えなくなる。 • 更新忘れというリスクが出てくる。 • 2年に1度は更新しなければいけない手間。 ※有料証明書を自動更新できるレンタルサーバもあります。 62
失効リスク 63
余談ですが… 無料SSLと有料SSL 64
さくらのレンタルサーバを例にしますが… 65 • 即時発行(30分ぐらい) • 自動更新 • 無料
Let‘sEncryptって何? • Let‘sEncrypt=認証局 • Symantec(=Digicert)やサイバートラスト、 Global Signなどと同じような組織 • ただし、非営利 66
Let‘sEncryptって何? 67
Let‘sEncryptって何? • 無料SSL機能=Let’s Encryptではない • レンサバの無料SSL機能でLet’sEncryptの 認証局を使っているだけ 68
余談ですが… • 通常無料で利用できるLet’s Encrypt • お客様が無料で安心してSSL機能を使うため • さくらインターネットはLet’s Encryptのスポン サーとなり、年間25,000ドルの寄付を行ってお
ります。 69
Let‘sEncryptって何? 70
有料の証明書にもメリットはあります 71
有料証明書のメリット • 2年間更新しなくていい(Let’s Encryptは3ヶ月) =更新時のリスクが少ない • 組織認証(EV、OV)が選べる 72 ※EV証明書
有料証明書のメリット • 証明書の更新=失敗のリスクなので 回数が少なくリスクが減る • アフターサービスの有無(再発行など) • サイトシールなどの付加価値 73
SSL化による新たな障害点の追加 74
SSL証明書における失効管理 • 失効=期限切れ →期限は証明書に書いてある 75
証明書に書いてある = ブラウザ側の処理でアクセスを遮断できる 76
77
何かしらの事情で有効期間途中で 失効させなければいけない時はどうする? 78
失効リスト色々 • CRL(Certificate Revocation List) • OCSP(Online Certificate Status Protocol)
• CT(Certificate Transparency) (失効リストとはちょっと違うけど…) 79
サイトをSSL化するリスクってあるの? 80 CRLの仕組み
CRL 81 失効証明書の全件リストが送られてくるので失効件数が多い 認証局の証明書を使うとサイトのパフォーマンスが悪くなる 失効証明書リスト このシリアル番号の証 明書は失効してるよー A:リストどうぞ! 全件だけど 認証局
Q:この認証局の 失効リストくれ! CRLエンドポイント
サイトをSSL化するリスクってあるの? 82 OCSPの仕組み
OCSP 83 CRLの弱点を考慮して、問い合わせに応答するかたちで証明 書の有効性を検証できる。 失効証明書リスト このシリアル番号の証 明書は失効してるよー A:失効してる よ! (してないよ!)
認証局 Q:この証明書 失効してない? OCSPレスポンダ
さらにOCSPはOCSPステープリングという サーバサイドで結果をキャッシュできる 機能がある ブラウザでOCSPレスポンスをキャッシュす ることもある 84
OCSPのキャッシュ機能 85 ウェブサイトを配信するサーバにOCSPレスポンスをキャッシュ できる場合があり、ボトルネックは解消される 失効証明書リスト このシリアル番号の証 明書は失効してるよー A:失効してる よ! (してないよ!)
認証局 Q:この証明書 失効してない? OCSPレスポンダ 失効証明書リスト (のキャッシュ) 失効証明書リスト (のキャッシュ)
CRLとOCSPの問題点 • 一部のブラウザは失効リストが検証できないと サーバとの通信を開始しない(エラーを返す) • つまり、CRLサーバやOCSPレスポンダ障害でサ イトが閲覧できなくなるリスクをはらむ。 • さらに、キャッシュが多いため原因切り分けを 困難にしている。
86
ブラウザ別対応状況 • Google Chrome:EV証明書のみ厳格に検証 • Firefox:すべての証明書を厳格に検証 • Edge/IE:すべての証明書を厳格に検証 87
ブラウザ別対応状況 • 厳格に検証する場合、検証できないとサイトへ のアクセスがブラウザ側で遮断される • →サイトが見れない!となる 88
サイトをSSL化するリスクってあるの? 89 CTの仕組み
CTについて • CTは失効管理というよりは証明書の発行の 透明性(Transparency)を担保する • CTログサーバに発行状況が記録される • 2019年現在、ほぼすべての証明書がCTに記録 されている 90
CTログサーバ公開内容 91
CTについて • 特定のドメインの実在を暴露してしまいますの で、新サービスのドメイン名を考える時は要注 意 • bitcoin.sakura.ad.jp みたいなサブドメインを作 ると、「さくらがビットコインやるのか!」みたい な憶測を生むことにもなります。
92
おさらい • 無料SSL/有料SSLそれぞれにメリット・デメリッ トがある。 • 失効管理を厳密にすると安全性↑可用性↓ • CTによるドメイン曝露に気をつける 93
SSLって……ややこしすぎない? 94
SSLのややこしみ 基本的にセキュアじゃないインターネット通信を 強引にセキュアにしているので… • 穴がある(通信先が漏れる、リダイレクト等) • パフォーマンスが悪い(通信開始まで時間がか かる)
SSLのややこしみ 基本的にパフォーマンスが落ちる仕組みなので 96 ブラウザ よっしゃ!キャッシュしたろ! (リダイレクト、OCSP、失効情報) よっしゃ!キャッシュしたろ! (OCSP Stapling) よっしゃ!キャッシュしなくていいように
仕組み作ったろ! (Preload HSTS、強制httpsドメイン) インターネット の偉い人たち サーバ
サイトをSSL化するリスクってあるの? 97 キャッシュやリダイレクトのブラウザ実装などが 各所にあってややこしい!
SSLに関する知識がしっかりしていないと サイトの問題切り分けが難しくなる 98
おすすめ書籍 99 プロフェッショナル SSL/TLS https://www.lambdanote.com/products/tls
最後に 100
さくらのレンタルサーバ SSL WordPress で注意すること 101
さくらのレンタルサーバで注意すること • 2018年4月より前のノウハウは古い • 現在は一般的な設定方法で問題なし →環境変数HTTPSが使える 102
さくらのレンタルサーバで注意すること 103 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule
^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> よくある書き方でOK!
最後に さくらインターネットからのお願い。 • WordPressコア・プラグイン・テーマ • PHPバージョン は常に最新版を使うようにしましょう。安易 にコアの自動アップデートを停止しないよう お願いいたします。 104
ご清聴ありがとうございました。 105