この記事では、mod_sslを使用してApacheでSSL/TLSの構成をガイドし、暗号化します。 CERTBOT、Apache構成、一般的な問題(ファイルパス、ファイアウォールなど)のトラブルシューティング、および自動化証明書の更新uを介した証明書の取得をカバーします。
mod_ssl
を使用してApacheでSSL/TLSを構成し、証明書を暗号化するには、いくつかのステップが含まれます。まず、 mod_ssl
を有効にしていることを確認してください。これは通常、Distributionのパッケージマネージャー(例えば、Debian/ubuntuにapt-get install libapache2-mod-ssl
、 yum install mod_ssl
on centos/rhel)を介して行われます。次に、証明書を暗号化してください。この目的のために広く使用されているツールであるCertbotクライアントを使用できます。 CERTBOTは、DNS、HTTP、マニュアルなど、さまざまな認証方法を提供しています。サーバーのセットアップに最も適した方法を選択します。証明書と秘密鍵(通常はcert.pem
およびprivkey.pem
など)を取得したら、それらを使用するようにApacheを構成する必要があります。
これには、通常、Apache仮想ホスト構成ファイル(通常は/etc/apache2/sites-available/
or同様のディレクトリにある)の作成または変更が含まれます。ドメインの<virtualhost></virtualhost>
ブロック内で、次の指示を追加します。
<code class="apache">SSLEngine on SSLCertificateFile /path/to/your/cert.pem SSLCertificateKeyFile /path/to/your/privkey.pem</code>
/path/to/your/
with your certificate and Keyファイルへの実際のパス。また、次のようなセキュリティベストプラクティスのための追加のディレクティブを含めることもできます。
<code class="apache">SSLCipherSuite HIGH:MEDIUM:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aDH:!EDH SSLProtocol all -SSLv2 -SSLv3 SSLHonorCipherOrder on</code>
これらの変更を行った後、 apachectl configtest
を使用して構成をテストし、Apache( apachectl restart
またはシステムの等価)を再起動します。最後に、HTTPSを使用してWebサイトにアクセスして、SSL/TLS構成が正しく機能していることを確認します。プレースホルダーパスを実際のファイルパスに置き換えることを忘れないでください。
ApacheのSSL/TLSの問題のトラブルシューティングと暗号化には、多くの場合、いくつかの領域をチェックすることが含まれます。まず、Apacheが実行されていること、およびmod_ssl
モジュールがロードされていることを確認します。これをapachectl -M
(またはシステムに相当するもの)を使用して検証できます。 mod_ssl
がリストされていない場合は、有効にする必要があります。
次に、構文エラーについてApache構成ファイルを確認します。 apachectl configtest
、これらを識別するために非常に貴重です。一般的なエラーには、証明書とキーへの誤ったファイルパス、構成内のディレクティブの欠落または誤って構成されたディレクティブ、および誤って構成されています。
構成が正しいと思われる場合は、Let's Encrypt証明書が有効であり、有効期限が切れていないことを確認してください。これをオンラインツールを使用して、または証明書ファイル自体を調べて確認できます。有効期限が切れている場合は、certbotを使用して更新します。
ネットワークの問題は、SSL/TLSが正しく動作するのを防ぐこともできます。サーバーのファイアウォールにより、ポート443(HTTPS)のトラフィックが許可されていることを確認してください。サーバーへのアクセスをブロックしている可能性のあるネットワーク接続の問題を確認してください。
最後に、ブラウザエラーが手がかりを提供する場合があります。ブラウザの開発者ツールまたはセキュリティ設定に表示されるエラーメッセージに細心の注意を払ってください。これらは多くの場合、問題の原因を特定します。
mod_ssl
自体は証明書の更新を処理しませんが、CERTBOTは優れた自動化機能を提供します。 CERTBOTは、有効期限が切れる前に証明書を自動的に更新するように構成できます。これには通常、サーバーのセットアップに応じて、Certbotの--standalone
または--webroot
プラグインを使用することが含まれます。最初に証明書を取得したら、Cronジョブをスケジュールして更新プロセスを自動的に実行できます。
たとえば、次の行をCrontabに追加する場合があります( crontab -e
を使用):
<code class="cron">0 0 * * * certbot renew --quiet</code>
これにより、真夜中に毎日certbot renew
が実行されます。 --quiet
フラグは不必要な出力を抑制します。 CERTBOTは、手動介入を必要とせずに更新プロセスを自動的に処理します。更新が成功した場合、Apacheは自動的に新しい証明書を取得します。ただし、CERTBOTのインストールと構成がサーバー環境に適していることを確認してください。選択した認証方法とCERTBOTのインストール場所に基づいてコマンドを調整する必要がある場合があります。
適切なSSL/TLS暗号スイートを選択することは、セキュリティに不可欠です。時代遅れで脆弱な暗号スイートを避けるべきです。代わりに、セキュリティと互換性のバランスをとる強力でモダンな暗号スイートを使用します。良い出発点は、強力な暗号を優先し、弱い暗号を除外する定義済みの暗号スイートストリングを使用することです。以前に提供された例、 HIGH:MEDIUM:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aDH:!EDH
この文字列は、いくつかの弱いまたは脆弱な暗号スイートを明示的に除外しながら、高強度および中の強度暗号を優先します。じゃあ!
シンボルは除外を示します。ただし、セキュリティのベストプラクティスと暗号化アルゴリズムの進化に対応するには、Cipher Suiteの構成を定期的に確認および更新する必要があります。 Mozilla SSL構成ジェネレーターなどのリソースを参照して、最新のセキュリティに関する推奨事項に合わせたカスタマイズされた暗号スイートを作成します。このジェネレーターは、特定のニーズとリスク許容度に基づいて、推奨される暗号のリストを提供します。選択した暗号スイートを徹底的にテストして、さまざまなブラウザやクライアントとの互換性を確保することを忘れないでください。
以上がMOD_SSLを使用してApacheでSSL/TLSを構成し、証明書を暗号化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。