ウェブサーバーをLinuxに移行し始めている(または既に移行済み)場合、安全なhttp(https)でページを提供したいと考えているなら、その方法を知っておく必要があります。httpsはウェブサーバーのセキュリティを保証するものではありませんが、移行プロセスにおける確実な第一歩となります。CentOSでApacheをhttps用に設定するのは難しくありませんが、いくつかの手順があります。クライアントや顧客に安心してページを提供できるよう、手順を順に見ていきましょう。
このチュートリアルでは、CentOS 7を使用し、自己署名証明書を使用します。自己署名証明書は、個人サイトやテスト目的に最適です。正式なビジネス展開には、信頼できる企業(Digicert、Network Solutions、GlobalSignなど)からSSL証明書を購入することをお勧めします。また、サーバー上でApacheが既に実行されていることを前提としています。
それでは、プロセスを始めましょう。
OpenSSLのインストールと使用
プロセスの最初のステップは、OpenSSLのインストールと使用する証明書の生成です。OpenSSLをインストールするには、ターミナルウィンドウを開き、次のコマンドを実行します。
sudo yum install mod_ssl openssl
上記のコマンドを実行すると、必要な依存関係がすべて取得されます (図 A )。
図A
ここで、次のコマンドを使用して SSL キーを生成します。
秘密鍵を生成する
âsudo openssl genrsa -out ca.key 2048
CSRを生成する
âsudo openssl req -new -key ca.key -out ca.csr
自己署名キーを生成する
âsudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
ここで、次のコマンドを使用して、新しく生成されたファイルを正しい場所にコピーする必要があります。
sudo cp ca.crt /etc/pki/tls/certs
sudo cp ca.key /etc/pki/tls/private/ca.key
sudo cp ca.csr /etc/pki/tls/private/ca.csr
CSRを生成するコマンドを実行すると、キーに関するいくつかの質問(国名、都道府県、市区町村、組織名、組織単位、一般名、メールアドレスなど)が表示されます。OpenSSLでは、CSRのチャレンジパスワードの入力も求められます。
次のステップでは、/etc/httpd/ conf.d/ssl.conf ファイルを編集する必要があります。ファイルを開いて編集し、以下の行を見つけて変更してください。
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
変更点:
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
変更点:
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
最後に、次のコマンドで Apache デーモンを再起動します。
sudo systemctl restart httpd
仮想ホストを作成する
SSLを利用するバーチャルホストを作成しましょう。そのためには、以下のコマンドで必要なディレクトリを作成します。
sudo mkdir -p /var/www/html/adorkable
âsudo mkdir -p /etc/httpd/sites-available
âsudo mkdir -p /etc/httpd/sites-enabled
ここでは「adorkable」を例に挙げていますが、お好きな名前や必要な名前を自由にお使いください。
次に、httpd.conf ファイルを編集して、sites-enabled ディレクトリを認識させる必要があります。これを行うには、/etc/httpd/ conf/httpd.conf を開き、ファイルの末尾に次の行を追加します。
IncludeOptional sites-enabled/*.conf
そのファイルを保存して閉じます。
次に、仮想ホストファイルを作成します。/etc/httpd/sites-available/adorkable.confに作成します。ここでも、「adorkable.conf」の部分は仮想ホストの名前に置き換えてください。このファイルに以下の内容を追加します(必要に応じてカスタマイズしてください)。
ServerAdmin email@address
DocumentRoot "/var/www/html/adorkable/"
ServerName AdorkableDesigns
ServerAlias adorkable
ErrorLog /var/www/html/adorkable/error.log
<directory “=”” var=”” www=”” html=”” adorkable=””>
DirectoryIndex index.html index.php
Options FollowSymLinks
AllowOverride All
Require all granted
そのファイルを保存して閉じます。
Apache が新しい仮想ホストを認識するためには、次のコマンドを使用して、sites-available から sites-enabled へのシンボリック リンクを作成する必要があります。
sudo ln -s /etc/httpd/sites-available/adorkable.conf /etc/httpd/sites-enabled/adorkable.conf
次のコマンドで Apache を再起動します。
sudo systemctl restart httpd
これで、仮想ホストがサーバーから見えるようになるはずです。/var/www/html/adorkableディレクトリにコンテンツを追加するだけで準備完了です。
簡単なテスト
CentOS で Apache に https を設定する手順はこれですべてです。ブラウザで https://IP_OF_SERVER にアクセスして簡単なテストを行うことができます。自己署名証明書を使用しているため、セキュリティ警告が表示されます。警告を無視すれば、Apache は https を使用してサイトを提供します。ブラウザで https://IP_OF_SERVER/adorkable にアクセスして、新しく作成された仮想ホストにアクセスしてください。提供するサイトの種類によっては、そのプラットフォームで少し追加作業が必要になる場合があります。
簡単簡単 https
Apacheサーバーをhttpsで動作するように正式に設定しました。先ほども述べたように、これを一般向けのビジネスサイトに使用する場合は、信頼できる販売店からSSL証明書を購入するか、Let's Encryptを使用することを強くお勧めします。
参照: SSL セキュリティのために Ubuntu サーバーに Let's Encrypt をインストールして使用する方法 (TechRepublic)