Security前書きTLS、またはトランスポートレイヤーセキュリティ、およびその前身であるセキュアソケットレイヤーの_SSL_は、保護された暗号化されたラッパーで通常のトラフィックをラップするために使用されるWebプロトコルです。このテクノロジーを使用すると、サーバーは、外部の第三者によってメッセージが傍受される可能性なしに、サーバーとクライアント間で安全にトラフィックを送信できます。証明書システムは、ユーザーが接続先のサイトのIDを確認するのにも役立ちます。Webサーバーで使用する自己署名SSL証明書を設定する方法を示します。+`権限で設定された非rootユーザーが必要です。9での初期サーバー設定に従って、このようなユーザーアカウントを設定する方法を学ぶことができます。Webサーバーをインストールする必要があります。サーバーにLAMP(Linux、Apache、MariaDB、PHP)スタック全体をインストールする場合は、https://www.digitalocean.com/community/tutorials/how-to-install-linuxのガイドに従ってください。9でのLAMPのセットアップ]。Webサーバーだけが必要な場合は、PHPおよびMariaDBに関する手順をスキップしてください。これらの前提条件を完了したら、以下に進みます。SSLは、公開証明書と秘密キーの組み合わせを使用して機能します。SSLキーはサーバー上で秘密にされます。クライアントに送信されるコンテンツを暗号化するために使用されます。SSL証明書は、コンテンツを要求するすべてのユーザーと公開共有されます。関連するSSLキーで署名されたコンテンツを復号化するために使用できます。単一のコマンドでOpenSSLを使用して自己署名キーと証明書のペアを作成できます。/etc/ssl/certs/apache-selfsigned.crt一連の質問が表示されます。それを説明する前に、発行しているコマンドで何が起こっているのか見てみましょう。*:これは、OpenSSL証明書、キー、およびその他のファイルを作成および管理するための基本的なコマンドラインツールです。*:このサブコマンドは、X.509証明書署名要求(CSR)管理を使用することを指定します。「X.509」は、鍵と証明書の管理のためにSSLおよびTLSが準拠している公開鍵インフラストラクチャ標準です。新しいX.509証明書を作成するため、このサブコマンドを使用しています。*:これは、通常のように証明書署名要求を生成するのではなく、自己署名証明書を作成することをユーティリティに伝えることにより、以前のサブコマンドをさらに変更します。*:これは、パスフレーズで証明書を保護するオプションをスキップするようOpenSSLに指示します。サーバーの起動時に、ユーザーの介入なしでファイルを読み取ることができるApacheが必要です。パスフレーズは、再起動のたびにパスフレーズを入力する必要があるため、これが発生するのを防ぎます。-365日*:このオプションは、証明書が有効と見なされる期間を設定します。ここで1年間設定しました。*:これは、新しい証明書と新しいキーを同時に生成することを指定します。前の手順で証明書に署名するために必要なキーを作成しなかったため、証明書と共に作成する必要があります。+`部分は、2048ビット長のRSAキーを作成するように指示します。*:この行は、作成中の生成された秘密鍵ファイルを配置する場所をOpenSSLに指示します。*:これは、OpenSSLに、作成する証明書を配置する場所を伝えます。前述したように、これらのオプションはキーファイルと証明書の両方を作成します。証明書に情報を正しく埋め込むために、サーバーに関するいくつかの質問があります。プロンプトに適切に記入します。サーバーに関連付けられているドメイン名、またはサーバーのパブリックIPアドレスを入力する必要があります。プロンプト全体は次のようになります。+`の下の適切なサブディレクトリに配置されます。+`ディレクトリの下にキーと証明書ファイルを作成しました。これらを利用するために、Apache構成を変更するだけです。構成をいくつか調整します。構成スニペットを作成して、強力なデフォルトのSSL設定を指定します。Apache仮想ホストファイルを変更します。(推奨)暗号化されていない仮想ホストファイルを変更して、要求を暗号化された仮想ホストに自動的にリダイレクトします。終了したら、安全なSSL構成が必要です。最初に、Apache構成スニペットを作成して、いくつかのSSL設定を定義します。これにより、Apacheに強力なSSL暗号スイートが設定され、サーバーのセキュリティを維持するのに役立ついくつかの高度な機能が有効になります。設定するパラメーターは、SSLを有効にするすべての仮想ホストで使用できます。`ディレクトリに新しいスニペットを作成します。+」という名前を付けます。Elstの推奨事項を使用します。このサイトは、一般的なソフトウェアの使いやすい暗号化設定を提供するように設計されています。この目的のために、提供された設定全体をコピーできます。+`ヘッダー(HSTS)を無効にします。HSTSをプリロードするとセキュリティが向上しますが、誤って有効にした場合や誤って有効にした場合、広範囲に及ぶ結果になる可能性があります。このガイドでは、設定を有効にしませんが、意味を理解していることが確実な場合は設定を変更できます。Off完了したら、ファイルを保存して閉じます。+`を変更しましょう。別のサーバーブロックファイルを使用している場合は、以下のコマンドでその名前を置き換えてください。先に進む前に、元のSSL仮想ホストファイルをバックアップしましょう。/etc/apache2/sites-available/default-ssl.conf.bak次に、SSL仮想ホストファイルを開いて調整を行います。/etc/apache2/sites-available/default-ssl.conf内部では、ほとんどのコメントが削除され、仮想ホストブロックはデフォルトで次のようになります。</VirtualHost></IfModule>ファイルを少し調整します。仮想ホストファイル(ServerAdminメールアドレス、ServerNameなど)で調整する通常の設定を行い、証明書とキーファイルを指すようにSSLディレクティブを調整します。+`ディレクティブを更新してください。これらの変更を行った後、サーバーブロックは次のようになります。</VirtualHost></IfModule>完了したら、ファイルを保存して閉じます。(推奨)HTTPホストファイルを変更してHTTPSにリダイレクトする現状では、サーバーは暗号化されていないHTTPトラフィックと暗号化されたHTTPSトラフィックの両方を提供します。セキュリティを強化するために、ほとんどの場合、HTTPをHTTPSに自動的にリダイレクトすることをお勧めします。この機能が必要ない場合は、このセクションを安全にスキップできます。+`ファイルを開きます。.</VirtualHost>完了したら、ファイルを保存して閉じます。これで、Apacheに必要な設定の変更はすべて完了です。+」でファイアウォールルールを更新する方法について説明します。」ファイアウォールを有効にしている場合、SSLトラフィックを許可するように設定を調整する必要がある場合があります。+`には、ファイアウォール設定を調整するために使用できるアプリプロファイルがロードされます次のように入力すると、使用可能なプロファイルを確認できます。listこのようなリストが表示され、出力の下部に次の4つのプロファイルが表示されます。.次のように入力すると、現在の設定を確認できます。status以前に通常のHTTPトラフィックのみを許可した場合、出力は次のようになります。Full」プロファイルを許可してから、冗長な「WWW」プロファイル許可を削除します。'WWW'ステータスは次のようになります。(v6)HTTPSトラフィックを許可するようにファイアウォールを設定したら、次のステップに進み、いくつかのモジュールと設定ファイルを有効にしてSSLが適切に機能するようにする方法について説明します。ステップ4-Apacheの変更を有効にする変更を行い、ファイアウォールを調整したので、ApacheでSSLおよびヘッダーモジュールを有効にし、SSL対応仮想ホストを有効にしてから、Apacheを再起動してこれらの変更を有効にします。+`ファイルを有効にする必要があります。ssl-paramsこの時点で、サイトと必要なモジュールが有効になります。ファイルに構文エラーがないことを確認する必要があります。次のように入力してこれを行います。configtestすべてが成功すると、次のような結果が得られます。+`が含まれている限り、設定ファイルに構文エラーはなく、Apacheを安全に再起動して変更を実装できます。apache2これで、自己署名SSL証明書がすべて設定されました。これで、サーバーがトラフィックを正しく暗号化していることをテストできます。ステップ5-暗号化のテストこれで、SSLサーバーをテストする準備ができました。+」と入力してからサーバーのドメイン名またはIPを入力します。https://作成した証明書はブラウザの信頼できる認証局のいずれかによって署名されていないため、次のような恐ろしい警告が表示される可能性があります。[Apache自己署名証明書の警告]これは予想される正常な動作です。証明書の暗号化の側面のみに関心があり、ホストの信頼性の第三者検証には関心がありません。[Apache自己署名オーバーライド]あなたのサイトに連れて行く必要があります。ブラウザのアドレスバーを見ると、「x」が付いたロックまたは別の同様の「安全でない」通知が表示されます。この場合、これは単に証明書を検証できないことを意味します。接続を暗号化しています。HTTPをHTTPSにリダイレクトするようにApacheを構成した場合、リダイレクトが正しく機能するかどうかも確認できます。http://これが同じアイコンになる場合、これはリダイレクトが正しく機能したことを意味します。以前に作成したリダイレクトは一時的なリダイレクトにすぎません。HTTPSへのリダイレクトを永続的にする場合は、最後の手順に進みます。手順6-永続的なリダイレクトへの変更リダイレクトが正常に機能し、暗号化されたトラフィックのみを許可したい場合は、暗号化されていないApache仮想ホストを再度変更して、リダイレクトを永続的にする必要があります。サーバーブロック構成ファイルを再度開きます。+」を追加すると、リダイレクトが302一時リダイレクトから301永続リダイレクトに変更されます。.</VirtualHost>ファイルを保存して閉じます。構成に構文エラーがないか確認してください。configtestこのコマンドで構文エラーが報告されない場合は、Apacheを再起動します。apache2これによりリダイレクトが永続的になり、サイトはHTTPS経由のトラフィックのみを処理します。結論クライアント接続に強力な暗号化を使用するようにApacheサーバーを構成しました。これにより、リクエストを安全に処理できるようになり、外部の関係者がトラフィックを読み取れなくなります。