1.10. Apache Web サーバー設定で秘密鍵と証明書を使用できるように NSS データベースからの証明書のエクスポート

RHEL 8 では Apache Web サーバーに mod_nss モジュールが提供されなくなります。Red Hat は mod_ssl モジュールの使用を推奨します。たとえば、RHEL 7 から RHEL 8 へ Web サーバーを移行したなどして、秘密鍵と証明書を Network Security Services (NSS) データベースに保存する場合は、以下の手順に従って、Privacy Enhanced Mail (PEM) 形式の鍵および証明書を抽出します。「Apache HTTP サーバーで TLS 暗号化の設定」に従って、mod_ssl 設定のファイルを使用できます。

この手順では、NSS データベースが /etc/httpd/alias/ に保存され、エクスポートした秘密鍵と証明書を /etc/pki/tls/ ディレクトリーに保存することを前提としています。

前提条件

  • 秘密鍵、証明書、および認証局(CA)の証明書は NSS データベースに保存されます。

手順

  1. NSS データベースの証明書を一覧表示します。

    # certutil -d /etc/httpd/alias/ -L
    Certificate Nickname           Trust Attributes
                                   SSL,S/MIME,JAR/XPI
    
    Example CA                     C,,
    Example Server Certificate     u,u,u

    次の手順では、証明書のニックネームが必要です。

  2. 秘密鍵を抽出するには、鍵を PKCS #12 ファイルに一時的にエクスポートする必要があります。

    1. 秘密鍵に関連付けられた証明書のニックネームを使用して、鍵を PKCS #12 ファイルにエクスポートします。

      # pk12util -o /etc/pki/tls/private/export.p12 -d /etc/httpd/alias/ -n "Example Server Certificate"
      Enter password for PKCS12 file: password
      Re-enter password: password
      pk12util: PKCS12 EXPORT SUCCESSFUL

      PKCS #12 ファイルにパスワードを設定する必要があります。次の手順では、このパスワードが必要です。

    2. PKCS #12 ファイルから秘密鍵をエクスポートします。

      # openssl pkcs12 -in /etc/pki/tls/private/export.p12 -out /etc/pki/tls/private/server.key -nocerts -nodes
      Enter Import Password: password
      MAC verified OK
    3. 一時 PKCS #12 ファイルを削除します。

      # rm /etc/pki/tls/private/export.p12
  3. /etc/pki/tls/private/server.key にパーミッションを設定し、root ユーザーのみがこのファイルにアクセスできるようにします。

    # chown root:root /etc/pki/tls/private/server.key
    # chmod 0600 /etc/pki/tls/private/server.key
  4. NSS データベースのサーバー証明書のニックネームを使用して CA 証明書をエクスポートします。

    # certutil -d /etc/httpd/alias/ -L -n "Example Server Certificate" -a -o /etc/pki/tls/certs/server.crt
  5. /etc/pki/tls/certs/server.crt にパーミッションを設定し、root ユーザーのみがこのファイルにアクセスできるようにします。

    # chown root:root /etc/pki/tls/certs/server.crt
    # chmod 0600 /etc/pki/tls/certs/server.crt
  6. NSS データベースの CA 証明書のニックネームを使用して、CA 証明書をエクスポートします。

    # certutil -d /etc/httpd/alias/ -L -n "Example CA" -a -o /etc/pki/tls/certs/ca.crt
  7. 「Apache HTTP サーバーで TLS 暗号化の設定」 に従って Apache Web サーバーを設定します。

    • SSLCertificateKeyFile パラメーターを /etc/pki/tls/private/server.key に設定します。
    • SSLCertificateFile パラメーターを /etc/pki/tls/certs/server.crt に設定します。
    • SSLCACertificateFile パラメーターを /etc/pki/tls/certs/ca.crt に設定します。

関連情報

  • man ページの certutil(1)
  • man ページの pk12util(1)
  • man ページの pkcs12(1ssl)

このページには機械翻訳が使用されている場合があります (詳細はこちら)。