SSL/TLS 証明書を使用して Apache を保護しましょう。
証明書が実装されると、構成されたドメイン/IP に HTTPS 経由でアクセスできるようになります。
はじめましょうか。
大まかに言うと、次のことを行います。
- SSL モジュールを使用して Apache HTTP 2.4.5 をコンパイルする
- SSL証明書を取得する
- SSL をサポートするように Apache を構成する

ソースから SSL を使用して Apache をインストールする
SSL を構成するには、Apache HTTP を mod_ssl でコンパイルする必要があります。これを実証するために、 Digital Ocean の CentOS 7 VM を使用します。
- root で Linux サーバーにログインし、最新バージョンの Apache をダウンロードします。
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .
注 : 最新バージョンは ここで確認 できます。
- Gunzipコマンドで解凍する
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
- 新しいフォルダー「 httpd-2.4.25 」ができます。
- 中に入り、次のconfigureコマンドを実行します。
./configure --enable-ssl –-enable-so
注 : これを新しいサーバーで実行している場合は、APR、PCRE、OpenSSL に関連する問題が発生する可能性があるため、トラブルシューティング ガイドを参照してください。
上記のconfigureコマンドでエラーが発生しないことを確認し、次にmakeコマンドを使用してインストールします。
make
make install
いつものように、上記のコマンドでエラーがないことを確認してください。これで、SSL をサポートする Apache Web サーバーの インストールが 完了しました。

SSL証明書の取得
認証局によって署名された SSL 証明書を生成および取得するには、複数の方法があります。
イントラネット Web サーバーに SSL を実装することを検討している場合、ほとんどの組織には内部証明書発行チームが存在するため、そこに確認する必要があります。ただし、CSR (証明書署名要求) を生成する必要はありますが、これは OpenSSL を使用して実行できます。
ただし、 インターネットに接続された URL を 保護したい場合は、VeriSign、GoDaddy、Namecheap、 ZeroSSL などから証明書を購入するか、 Let’s Encrypt から無料の証明書を取得することができます。
Let’s Encrypt は、 無料の SSL/TLS 証明書 を提供する Linux Foundation コラボレーション プロジェクトです。 Let’s Encrypt を使用してドメインの証明書を 1 つ取得します – Chandan.io
CSR を生成するには複数の方法がありますが、私が見つけた 最も簡単な 方法は、「 SSL For FREE 」オンライン ツールを使用することです。
保護したいURLを入力してください
リストされている方法のいずれかでドメインの所有権を確認し、ドメイン証明書ファイルをダウンロードします。
次に Apache Web サーバーを構成するために使用する 3 つのファイルを取得します。
- key – これはあなたのキーファイルであり、誰とも公に共有すべきではありません
- 証明書 – ドメインの実際の SSL 証明書
- Ca_bundle – 署名者のルート/中間証明書
ダウンロードしたファイルをWebサーバーに転送します。すぐに必要になります。

Apache SSL 構成
最後のステップは、HTTPS 経由でリクエストを処理できるように Apache を構成することです。
- Apache Webサーバーにログインします
- httpd.conf ファイル (デフォルトの場所 /usr/local/apache2/conf/) のバックアップを作成します。
- vi エディターでファイルを開き、mod_ssl モジュールと httpd-ssl.conf が存在し、コメントされていないことを確認します。
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
httpd-ssl.conf ファイルを使用して証明書の詳細を構成します。正しいパラメータが存在することを確認するには、次のことが必要です。
- SSLCertificateFile – 前にダウンロードした証明書 CRT ファイルのパス
- SSLCertificateKeyFile – private.a キー ファイルのパス
- SSLCertificateChainFile – ca_bundle.crt ファイル パス
ヒント : 「ssl」という名前の新しいフォルダーを作成し、その中に証明書関連のファイルをすべて保存するとよいでしょう。
- 必要に応じてバックアップを作成し、vi エディターを使用してファイルを変更します。
SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate.crt"
SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key"
次に、「 ServerName 」ディレクティブを構成する必要があります。通常、これはドメイン/URL 名です。
ServerName chandan.io
- ファイルを保存し、Apache Webサーバーを再起動します。
cd /usr/local/apache2/bin
./apachectl stop
./apachectl start
最後に、ドメインが新しく構成された Web サーバー IP にマッピングされていることを確認する必要があります。完了したら、HTTPS を使用してドメインにアクセスしてみます。
ご覧のとおり、Chandan.io には、私が設定した証明書を使用して https 経由でアクセスできます 。
上記の手順は SSL 証明書を設定するために不可欠であり、ここで説明したように SSL をさらに調整して強化し、安全にする必要があります。稼働前に、Web サーバーの SSL/TLS をテストして、一般的なセキュリティ脆弱性にさらされていないことを確認することもできます。
この記事で、HTTPS 経由で URL にアクセスできるように、Apache Web サーバーに SSL 証明書を実装する方法について理解していただければ幸いです。
