序章
TLS 、つまりトランスポート層セキュリティ、およびその前身である SSL 、セキュアソケットレイヤーは、通常のトラフィックを保護された暗号化ラッパーに配置するために作成されたセキュアプロトコルです。
これらのプロトコルにより、トラフィックが途中で傍受されて読み取られる可能性なしに、リモートパーティ間でトラフィックを安全に送信できます。 また、認証局によって信頼され、本物であるとサーバーを確立することにより、インターネット全体でドメインとサーバーのIDを検証するのに役立ちます。
このガイドでは、Ubuntu 14.04サーバーでApache用の自己署名SSL証明書を作成する方法について説明します。これにより、サーバーへのトラフィックを暗号化できます。 これは、サーバーのIDをサードパーティで検証するメリットはありませんが、単に情報を安全に転送したいという要件を満たしています。
注:自己署名証明書の代わりにLet’sEncryptの使用を検討することをお勧めします。 Let’s Encryptは、ほとんどのWebブラウザで信頼されている無料のSSL/TLS証明書を発行する新しい認証局です。 チュートリアルをチェックして開始してください: Ubuntu14.04でLet’sEncryptを使用してApacheを保護する方法
前提条件
始める前に、いくつかの構成がすでに処理されている必要があります。
このガイドでは、sudo権限を持つroot以外のユーザーとして操作します。 Ubuntu 14.04初期サーバーセットアップガイドの手順1〜4に従ってセットアップできます。
また、Apacheをインストールする必要があります。 まだ稼働していない場合は、次のように入力することですぐに修正できます。
sudo apt-get update
sudo apt-get install apache2
ステップ1—SSLモジュールをアクティブ化する
SSLサポートは、実際にはUbuntu14.04Apacheパッケージに標準装備されています。 システムでSSLを利用できるようにする必要があります。
次のように入力して、モジュールを有効にします。
sudo a2enmod ssl
SSLを有効にした後、変更が認識されるようにするには、Webサーバーを再起動する必要があります。
sudo service apache2 restart
これにより、SSLを構成するように構成すれば、WebサーバーでSSLを処理できるようになります。
ステップ2—自己署名SSL証明書を作成する
まず、Apacheの構成階層内にサブディレクトリを作成して、作成する証明書ファイルを配置します。
sudo mkdir /etc/apache2/ssl
キーと証明書を配置する場所ができたので、次のように入力して、両方を1つのステップで作成できます。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
これが何を意味するのかを正確に調べてみましょう。
- openssl :これは、証明書、キー、署名要求などを作成および管理するためにOpenSSLによって提供される基本的なコマンドラインツールです。
- req :これは、X.509証明書署名要求(CSR)管理のサブコマンドを指定します。 X.509は、SSLが鍵と証明書の管理のために準拠している公開鍵インフラストラクチャ標準です。 新しいX.509証明書を作成したいので、これが必要です。
- -x509 :このオプションは、証明書要求を生成する代わりに、自己署名証明書ファイルを作成することを指定します。
- -nodes :このオプションは、パスフレーズでキーファイルを保護したくないことをOpenSSLに通知します。 パスワードで保護されたキーファイルがあると、サービスが再起動するたびにパスワードを入力する必要があるため、Apacheが自動的に起動するのを妨げます。
- -365日:これは、作成する証明書が1年間有効であることを指定します。
- -newkey rsa:2048 :このオプションは、証明書要求と新しい秘密鍵を同時に作成します。 これは、事前に秘密鍵を作成しなかったために必要です。
rsa:2048
は、2048ビット長のRSAキーを生成するようにOpenSSLに指示します。 - -keyout :このパラメーターは、作成される秘密鍵ファイルの出力ファイルに名前を付けます。
- -out :このオプションは、生成する証明書の出力ファイルに名前を付けます。
「ENTER」を押すと、いくつかの質問が表示されます。
要求される最も重要な項目は、「Common Name(eg サーバーFQDNまたはあなたの名前)」。 証明書に関連付けるドメイン名を入力するか、ドメイン名がない場合はサーバーのパブリックIPアドレスを入力する必要があります。
質問の部分は次のようになります。
国名(2文字のコード)[AU]:米国の州または州の名前(フルネーム)[一部の州]:ニューヨークの地域名(例:市)[]:ニューヨーク市の組織名(例:会社)[インターネットWidgits Pty Ltd]:あなたの会社の組織単位名(例:セクション)[]:キトン部門の一般名(例: サーバーFQDNまたはあなたの名前)[]: your_domain.comメールアドレス[]: your_email @ドメイン .com
キーと証明書が作成され、/etc/apache2/ssl
ディレクトリに配置されます。
ステップ3—SSLを使用するようにApacheを設定する
証明書とキーを使用できるようになったので、仮想ホストファイルでこれらのファイルを使用するようにApacheを構成できます。 Apache仮想ホストの設定方法について詳しくは、こちらをご覧ください。
sites-available
サブディレクトリの000-default.conf
ファイルに基づいて構成ファイルを作成する代わりに、デフォルトのSSL構成を含むdefault-ssl.conf
ファイルに基づいてこの構成を作成します。
今すぐroot権限でファイルを開きます。
sudo nano /etc/apache2/sites-available/default-ssl.conf
コメントを削除すると、ファイルは次のようになります。
デフォルト