分12345SSLとはインターネットは危険に満ちています。いえ,もはや我々のお仕事や生活はインターネットなしには成立しません。そんな危険なインターネット上で,安全に通信するためのプロトコルがSSL(注1)です。SSLを利用することで「暗号化による通信の保護」と「通信相手の真正性の確認」を行うことができます。逆に言えばSSLで保護されていない場合は,通信内容を盗み見られたり,偽のサイトに誘導されるといった攻撃に晒される危険があります。パスワードやクレジットカード情報などを入力するサイトはもちろんのこと,もはやインターネット上の通信はすべてSSLで保護すべき,といった意見もあるほどです。注1)SSLv2とSSLv3は既に使用が禁止されており,現在では後継のTLSが使われています。世間ではSSLという呼び名が普及しているため,本稿でもSSLで統一します。LTSのサーバーにSSL証明書をインストールし,セキュアなサービスを構築する方法を紹介します。ApacheでHTTPSサーバーを立てるまず手始めに,HTTPSで通信できるWebサーバーを構築してみましょう。Webサーバーをインストールします。apache2次にApacheのSSLモジュールと,デフォルトのSSLのサイトを有効化し,Apacheを再起動します。restartこれで,Apacheが443番ポートの待ち受けを開始します。:::*SSLで通信を行うには,SSL証明書をサーバーにインストールしなければなりません。Webサーバーをインストールした段階でサンプルのSSL証明書が自動的に作成され,利用可能になっています。Ubuntuのapache2パッケージは,Recommendsにssl-certパッケージが指定されています。そのため明示的に--no-install-recommendsオプションを指定しない限り,apache2のインストールと同時にこのパッケージもインストールされます。generate-default-snakeoilというコマンドが実行されているのです。make-ssl-certはその名の通り,SSL証明書を作成するためのラッパースクリプトです。これによって作成されたサンプル証明書の秘密鍵と公開鍵はそれぞれ/etc/ssl/private/ssl-cert-snakeoil.key/etc/ssl/certs/ssl-cert-snakeoil.pemに配置されます。ApacheのデフォルトのSSLサイトの設定である/etc/apache2/sites-available/default-ssl.confでも,以下のようにこの証明書と秘密鍵が指定されています。/etc/ssl/private/ssl-cert-snakeoil.keyこのような理由から,Ubuntuではapache2パッケージをインストールしてモジュールとサイトを有効化するだけで,(⁠サンプルの証明書で)SSL通信を行うサイトを動かすことができるのです(注2⁠)⁠。注2)snakeoilとは日本で言うガマの油のような,効果のあやしげな胡散臭い商品のことを指す単語です。そこから転じて,自己署名証明書の名前に使われています。当然ですが,そのまま本番サイトに利用できる証明書ではありません。念の為opensslコマンドを使って,証明書の中身を確認しておきましょう。フィンガープリントは,自己署名証明書を使ううえで正しいサイトであることを確認する唯一の手段となりますので,控えておいてください。Fingerprint=57:2A:35:91:05:9A:FE:62:11:EF:4F:54:6F:07:7C:39:7E:34:FB:F3:08:7C:CD:75:17:51:F0:D6:AE:79:AF:C8Webブラウザーからhttps://(サーバーのIPアドレス)にアクセスしてください。画像のような警告が表示されているはずです。これはサーバーが(信頼できる認証局の署名のない)自己署名証明書を利用しているためです(注3⁠)⁠。注3)他にも証明書の有効期限が切れていたり,証明書のCN(コモンネーム)と実際にアクセスしているドメインが異なっている場合にも警告が発生します。Webブラウザーが警告を発するということは,何かおかしいことが起きているわけですから,ここに書かれている通り,なぜそうなっているのかが理解できている場合を除き,そのようなサイトにアクセスしてはいけません。クリックして,証明書のフィンガープリントを確認してください。これが先ほど控えたフィンガープリントと一致していれば,意図したサイトに接続できているという証明になります。問題がないようであれば,「⁠セキュリティ例外を承認」をクリックしてください。この方法で構築したサイトを自分以外の誰かに利用させる場合は,証明書のフィンガープリントを事前に連絡して,証明書の確認ができるようにしてあげてください。本連載では過去にTinyTinyRSSやownCloudといったWebサービスの構築を紹介してきましたが,こういったサービスもSSLに対応して運用するのが望ましいでしょう。ownCloudなどは,HTTPでアクセスしてきたら強制的にHTTPSにリダイレクトしてもよいくらいです(注4⁠)⁠。7.x系には常にHTTPSで接続させるためのオプションが用意されています。理想のフリーデスクトップ環境を求めて東へ西へ......のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。最近レンズ沼にハマる。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。