開発運用

Apache SSL証明書の設定

SSL(Secure Socket Layer)証明書は、ウェブサイトとその訪問者との間で安全にデータを送受信するために必要です。自己署名証明書(Self-Signed Certificate)は、商業的な証明書の代わりに使用することができ、特に開発環境やテスト環境で有用です。今回は、Ubuntu 16.04上でApacheウェブサーバーとともに自己署名SSL証明書を作成し、使用する方法を解説します。

1. 必要なパッケージのインストール

まず、必要なツールをインストールします。opensslapache2を使用してSSL証明書を生成し、設定します。

以下のコマンドを実行して、必要なパッケージをインストールします。

bash
sudo apt update sudo apt install apache2 openssl

2. SSL証明書と秘密鍵の作成

次に、opensslコマンドを使って自己署名証明書と秘密鍵を生成します。

  1. 証明書用のディレクトリを作成

    証明書と秘密鍵を保存するディレクトリを作成します。

    bash
    sudo mkdir /etc/ssl/myserver
  2. 秘密鍵を作成

    次に、秘密鍵を作成します。秘密鍵は安全に保存する必要があるため、慎重に扱いましょう。

    bash
    sudo openssl genpkey -algorithm RSA -out /etc/ssl/myserver/myserver.key -aes256

    -aes256オプションは、鍵を暗号化するために使用されます。パスフレーズを入力するように求められます。

  3. 証明書署名要求(CSR)の作成

    次に、証明書署名要求(CSR)を生成します。CSRは証明書の発行元に証明書を要求するために使用されますが、自己署名証明書の場合は自分で署名します。

    bash
    sudo openssl req -new -key /etc/ssl/myserver/myserver.key -out /etc/ssl/myserver/myserver.csr

    このコマンド実行後、いくつかの質問が表示されます。重要な質問は「Common Name」で、これはウェブサーバーのホスト名(ドメイン名)に一致させる必要があります。

  4. 自己署名証明書の作成

    最後に、自己署名証明書を生成します。-daysオプションで証明書の有効期限を指定できます。例えば、365日間有効な証明書を作成するには以下のようにします。

    bash
    sudo openssl x509 -req -in /etc/ssl/myserver/myserver.csr -signkey /etc/ssl/myserver/myserver.key -out /etc/ssl/myserver/myserver.crt -days 365

    これで、myserver.crtという証明書ファイルが作成されます。

3. ApacheのSSLモジュールを有効化

ApacheがSSLをサポートするために、SSLモジュールを有効にする必要があります。

  1. SSLモジュールを有効にする

    以下のコマンドを実行して、SSLモジュールを有効にします。

    bash
    sudo a2enmod ssl
  2. SSL仮想ホストの設定

    次に、SSL証明書を使用するようにApacheの設定ファイルを編集します。デフォルトでは、SSL仮想ホスト設定が/etc/apache2/sites-available/default-ssl.confにあります。

    以下のコマンドで設定ファイルを編集します。

    bash
    sudo nano /etc/apache2/sites-available/default-ssl.conf

    このファイルを開いたら、以下の設定を確認します。必要に応じて、証明書のパスを変更します。

    bash
    ServerAdmin webmaster@localhost DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/ssl/myserver/myserver.crt SSLCertificateKeyFile /etc/ssl/myserver/myserver.key

    SSLCertificateFileには証明書ファイルのパス、SSLCertificateKeyFileには秘密鍵ファイルのパスを設定します。

4. SSL仮想ホストの有効化

設定ファイルを保存した後、SSL仮想ホストを有効化します。

bash
sudo a2ensite default-ssl.conf

その後、Apacheを再起動して設定を反映させます。

bash
sudo systemctl restart apache2

5. 設定の確認

ウェブブラウザを開き、https://your_domain_or_ipにアクセスしてみてください。自己署名証明書を使用しているため、ブラウザは証明書が信頼されていないという警告を表示しますが、これは予想通りです。開発やテスト環境では問題ありません。

まとめ

これで、Apacheウェブサーバーに自己署名SSL証明書を設定する手順は完了です。自己署名証明書は商用の証明書と比較して信頼されないため、通常は開発環境やテスト環境で使用されます。本番環境では、信頼された認証機関から発行された証明書を使用することをお勧めします。

Back to top button