ちょっと話題の記事

【書評】SSLちゃんと理解できているかな…。「SSLをはじめよう」を読んでみた #技術書典

2020.03.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは(U・ω・U)
AWS事業部の深澤です。

現在、オンラインで技術同人誌のオンライン即売イベントである「技術書典応援祭」が開催されています。(期間:4/5まで)

そんな中に「SSLをはじめよう」というタイトルの本があります。SSLという身近な技術なのですが、自分の中で理解できているか不安があり今回手にとってみました。読み進めてみると意外とSSLを理解できていなかったんだなと気づかされる構成となっており、さらに初学者の方にも是非お勧めしたいと思える1冊でしたので今回ご紹介させていただこうと思います。

どんな本なの?

こちらはかつて筆者であるmochikoさんが書かれた「DNSをはじめよう」、「AWSをはじめよう」の続編となる書籍です。

はじめようシリーズ3部作の紹介

この画像にも記載されているとおり「SSLをはじめよう」から読み進めていただいても問題なさそうでした。ですが途中で「DNSをはじめよう」で取得したドメインを使用する箇所があります。可能であれば事前にドメインを準備の上で手を動かしながら読む方が理解につながる印象を受けました。

ちなみに「DNSをはじめよう」と「AWSをはじめよう」は微力ではありますが僕も協力させていただきました。どちらも手を動かしつつ楽しみながら学んでいただける1冊となっています。

目次

次のような章立てで構成されています。

  • CHAPTER 1「SSL/TLSとは?」
  • CHAPTER 2「Oracle Cloudのアカウントを作ろう」
  • CHAPTER 3「サーバを立ててHTTPでサイトを見てみよう」
  • CHAPTER 4「SSL証明書を取ってHTTPSでサイトを見よう」
  • CHAPTER 5「SSL/TLSの仕組み」

各章のポイント

CHAPTER 1「SSL/TLSとは?」

この章ではSSL/TLSの基礎知識についておさらいしていきます。分かっているようで結構曖昧なところが多いこのSSL/TLS。例えば次のような質問がきたとき回答に戸惑ってしまう方も多いのではないでしょうか。(自分も理解が曖昧でした

  • SSLとTLSって何が違うの?
  • SSLとHTTPSは同じ意味?
  • どんなサイトでも必ずHTTPSにしなきゃダメなの?

こういったSSL/TLSの基礎をおさらいしつつ、意外と見落としがちな疑問にも丁寧に解説してくれる見応えのある章でした。

CHAPTER 2「Oracle Cloudのアカウントを作ろう」

この章を見たとき「なんでAWSじゃないの?」と思いました。まぁAWSじゃないにしてもGCPやAzureといった王道のクラウドを採用しないところが面白いですよね。その理由も本章を読めば納得。改めてクラウド選定について考えさせられました。「Oracle Cloudなんて触ったことないよ、お金は大丈夫?」って心配になりましたが、コストにも気を配りながらスクリーンショット付きで丁寧にサーバの建て方を解説してくれていて特に困るところはなかったです。途中で「頑張った自分を褒めてあげて」という読者への気配りが筆者のmochikoさんらしいなぁと少しほっこりしました。

CHAPTER 3「サーバを立ててHTTPでサイトを見てみよう」

ここではSSHのキーを作成し、CHAPTER 2で作成したアカウント上にインスタンス(サーバ)を建ててSSHで接続しミドルウェアやファイアウォールを設定、最終的にはHTTPでアクセスできるようになるまでを説明しています。ハマりがちなトラブルについても書かれていて非常に親切な印象を受けました。また、途中に挟んである手順に纏わるコラムには、何気なく設定しているSSH秘密キーのパスフレーズについてなどが書かれていて改めて読んでみると意外と知らないことがあるなぁと個人的には読み応えがありました。

CHAPTER 4「SSL証明書を取ってHTTPSでサイトを見よう」

最近ではなかなか作業する機会が少なくなったSSL証明書の取得から設定までを体験しながらSSLの仕組みについて理解を深めていきます。AWSだとELBとACMを組み合わせればこの辺りの作業はいらなくなるのですが、改めて手を動かすことで発見も多かったです。ここでの作業体験が次のCHAPTER 5へとつながっていきます。

CHAPTER 5「SSL/TLSの仕組み」

実際にSSL通信の裏側で行われていることを細く解説してくれています。CHAPTER 4で実際に作業を行っていると「あのとき作ったものはこのためにあったのか」という発見もあり、楽しく読み進められました。最後にはもっと深くSSLを勉強するための参考書籍が紹介されており、次にどういったステップで学習を進めていけば良いかのヒントを提供してくれます。

最後に

SSLをちゃんと理解したいという方や、これからSSLを勉強したいという方に是非お勧めしたい1冊でした。また非エンジニアの方にも「SSLって本当に安全なの」と漠然とした不安をお持ちの方はいらっしゃると思うので、そういった方にもお勧めしたいなぁと思いました。一方でSSLの作業をよく行っていられてSSLを深く理解されている方にとっては少し物足りない本かもしれません。

どんな方でも分かっているようで振り返ってみると意外と忘れていることや理解できていなかった箇所があるというものはよくあるものです。全体のボリュームも多くなく1日あれば読み終えれるかなといった具合でした(全体で130Pほど)。時折出題されるドリルが記憶の定着を促進してくれて良いです。これを期にコーヒー片手にSSLを勉強してみるのもいかがでしょうか。

以上、深澤(@shun_quartet)でした!