ウェブサイト検索

RHEL/CentOS 7.0 で Apache の自己署名 SSL 証明書とキーを作成する方法


SSL (Secure Sockets Layer) は、認証局によって署名されたデジタル証明書を使用し、対称/非対称キーを使用してサーバーとクライアント間の安全なデータ フローを可能にする暗号化プロトコルです。 (CA)。

要件

  1. RHEL/CentOS 7.0 への基本的な LAMP インストール

このチュートリアルでは、Red Hat Enterprise Linux/CentOS 7.0< にインストールされている Apache Web サーバーで Secure Sockets Layer (SSL) 通信暗号化プロトコルを設定する方法について説明します。 を実行し、プロセス全体を大幅に簡素化する bash スクリプトを使用して自己署名証明書とキーを生成します。

ステップ 1: Apache SSL のインストールと構成

1. Apache HTTP サーバーで SSL を有効にするには、次のコマンドを使用して、SSL モジュールと SSL/TLS サポートに必要な OpenSSL ツールキットをインストールします。

yum install mod_ssl openssl

2. SSL モジュールがインストールされたら、HTTPD デーモンを再起動し、新しいファイアウォール ルールを追加して、SSL ポート 443 が確実に開かれるようにします。リッスン状態のマシン上の外部接続。

systemctl restart httpd
firewall-cmd --add-service=https   ## On-fly rule

firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. SSL 接続をテストするには、リモート ブラウザを開き、https://server_IP で HTPS プロトコルを使用してサーバーの IP アドレスに移動します。

ステップ 2: SSL 証明書とキーを作成する

4. サーバーとクライアント間の以前の SSL 通信は、インストール時に自動的に生成されたデフォルトの証明書とキーを使用して行われました。新しい秘密キーと自己署名証明書のペアを生成するには、実行可能システム パス (` PATH) 上に次の bash スクリプトを作成します。

このチュートリアルでは /usr/local/bin/ パスが選択されました。スクリプトに実行可能ビットが設定されていることを確認してから、それをコマンドとして使用して /etc/ に新しい SSL ペアを作成します。 httpd/ssl/ を証明書とキーのデフォルトの場所として指定します。

nano /usr/local/bin/apache_ssl

次のファイルの内容を使用します。

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

5. 次に、このスクリプトを実行可能にして起動し、Apache SSL 仮想ホストの証明書とキーの新しいペアを生成します。

情報を入力し、共通名 の値がサーバーの FQDN と一致するか、仮想ホスティングの場合は安全な Web サイトに接続するときにアクセスする Web アドレスと一致するように注意してください。

chmod +x /usr/local/bin/apache_ssl
apache_ssl

6. 証明書とキーが生成されると、スクリプトは /etc/httpd/ssl/ の場所に保存されているすべての Apache SSL ペアの長いリストを表示します。

7. SSL 証明書とキーを生成する他の方法は、システムに crypto-utils パッケージをインストールし、genkey コマンドを使用してペアを生成することです。特にPutty ターミナル画面で使用する場合、いくつかの問題が発生します。

したがって、画面モニターに直接接続している場合にのみ、この方法を使用することをお勧めします。

yum install crypto-utils
genkey your_FQDN

8. 新しい証明書とキーを SSL Web サイトに追加するには、Web サイト設定ファイルを開き、SSLCertificateFile ステートメントと SSLCertificateKeyFile ステートメントを新しいペアに置き換えます。場所とそれに応じた名前。

9. 証明書が信頼できる CA 認証局によって発行されていない場合、または証明書のホスト名が接続を確立するホスト名と一致しない場合は、ブラウザにエラーが表示され、手動で同意する必要があります。証明書。

それでおしまい! RHEL/CentOS 7.0 のコマンドラインとして apache_ssl を使用して、必要な数の自己署名証明書とキーのペアを生成できるようになり、すべてが /etc/httpd/ に保存されます。 700 権限で保護されたキー ファイルを含む ssl/ パス。