[KB7857] ESET PROTECT On-Prem(Linux)でHTTPS/SSL接続を設定する

注意事項

このページはコンピュータによって翻訳されています。このページの「言語」の「英語」をクリックすると、原文が表示されます。ご不明な点がございましたら、お近くのサポートまでお問い合わせください。

問題

解決策

関連する解決策:Windows ユーザー

Rocky Linux 仮想アプライアンスをご利用の方

Rocky Linux 仮想アプライアンスをご利用の場合は、コネクタのポート番号を 443 に設定してください。

詳細については、Rocky Linux ESET PROTECT 仮想アプライアンスの証明書を使用した ESET 管理エージェント をご覧ください。

HTTPS

セキュリティ上の理由から、ESET PROTECT On-Prem を HTTPS を使用するように設定することをお勧めします。

既存の証明書を使用する

HTTP 経由で ESET PROTECT On-Prem にアクセスすると、「暗号化されていない接続を使用しています!HTTPS を使用するように Web サーバーを設定してください」というエラーメッセージが表示される場合があります。これは、ESET PROTECT On-Prem のインストール後に発生します。

以下の手順は、安全な HTTPS 接続を確保するために使用される Apache Tomcat 用の証明書に関するものです。ESET PROTECT On-Prem の認証に関する詳細をご覧ください。

  1. 証明書ファイル(例:certificate_file.pfx)をApache Tomcatのインストールフォルダ(例:/etc/tomcat/)に移動します。

  2. Apache TomcatのインストールフォルダにあるServer.xmlファイルを開き、次のように編集します。

    • Apache Tomcat 9

      • < ‎Service name="Catalina"> の後に< ‎Connectorが存在しない場合は、以下の文字列をコピーして、<‎Service name="Catalina"> の後に貼り付けてください。

        keystoreFilekeystorePass keystoreType には、各自の値を使用してください:

        <Connector port="8443"
                       protocol="HTTP/1.1"
                       SSLEnabled="true"
                       maxThreads="150"
                       scheme="https"
                       secure="true"
                       clientAuth="false"
                       sslEnabledProtocols="TLSv1.2,TLSv1.3"
                       ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
                                TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
                                TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
                                TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
                                TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
                                TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
                                TLS_RSA_WITH_AES_128_CBC_SHA256,
                                TLS_RSA_WITH_AES_128_GCM_SHA256,
                                TLS_RSA_WITH_AES_128_CBC_SHA,
                                TLS_RSA_WITH_AES_256_CBC_SHA256,
                                TLS_RSA_WITH_AES_256_GCM_SHA384,
                                TLS_RSA_WITH_AES_256_CBC_SHA"
                       keystoreFile="/etc/tomcat/certificate_file.pfx"
                       keystorePass="Secret_Password_123"
                       keystoreType="PKCS12"
                       />
      • < ‎Service name="Catalina"> の後に< ‎Connectorが存在する場合は、以下のパラメータに独自の値を設定してください。

        • keystoreFile– 証明書ファイル(.pfx.keystore、またはその他)へのフルパスを指定してください。 JKS以外の証明書(例:.pfxファイル)を使用する場合は、keyAliasを削除し(デフォルトでServer.xmlに含まれています)、適切なkeystoreTypeを追加してください。
        • keystorePass – 証明書のパスフレーズを指定します
        • keystoreType証明書のタイプ指定します
    • Apache Tomcat 10

      <Connectorタグを次のように編集してください。

      以下のパラメータには、各自の値を使用してください。

      • certificateKeystoreFile– 証明書ファイルへのフルパスを指定します
      • certificateKeystorePassword – 証明書のパスフレーズを指定します

      <Connector port="443"
                     protocol="org.apache.coyote.http11.Http11NioProtocol"
                     maxThreads="150"
                     SSLEnabled="true">
                     <SSLHostConfig>
                      <Certificate certificateKeystoreFile=""/etc/tomcat/certificate_file.pfx"
                          certificateKeystorePassword="admin.1234"
                           type="RSA"/>
                     </SSLHostConfig>
                  </Connector>
  3. Tomcat サービスを再起動します:

    sudo systemctl restart tomcat
    • .keystoreファイルを使用する場合は、ファイルへのパス(keystoreFile="/etc/tomcat/tomcat.keystore")を指定し、keystoreType の代わりにkeyAliaskeyAlias="tomcat")を定義してください。

    • HTTPを無効にする場合は:

      <!--
          <Connector port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
      SELinux が有効な場合

      SELinuxが有効になっており、無効な証明書の警告が表示されるユーザーは、SELinuxのセキュリティコンテキストを復元するためにrestoreconコマンド を実行する必要がある場合があります:

      restorecon /etc/tomcat/my_cert_file.pfx
      
      ls -lZ
      
      -rw-r--r--. root root unconfined_u:object_r:etc_t:s0   /etc/tomcat/my_cert_file.pfx

新しい証明書を作成し、署名を取得する

ESET PROTECT On-Prem では、安全な HTTPS/SSL 接続を使用してください。

  1. SSL 証明書を含むキーストアを作成します。Java がインストールされている 必要があります。

    Apache Tomcat には Java が必要です:
    • Java、ESET PROTECT On-Prem、および Apache Tomcat のビット数が同じであることを確認してください。

    • システムに複数の Java バージョンがインストールされている場合は、古いバージョンの Java をアンインストールし、最新の Java のみを残しておくことをお勧めします。

    • ビジネス、商用、または本番環境での使用を目的とした Oracle Java SE のパブリックアップデートには、商用ライセンスが必要です。Java SE ライセンスを購入しない場合は、このガイド を使用して、無償の代替手段に移行することができます。

    Java には、コマンドラインから証明書を作成できるkeytool が含まれています。

    1. 1つの証明書が侵害された場合でも、他のTomcatインスタンスのセキュリティが維持されるようにするため、(複数のTomcatインスタンスがある場合は)Tomcatインスタンスごとに新しい証明書を生成する必要があります。以下は、SSL証明書を含むキーストア を作成するためのコマンド例です。

    2. keytoolファイルの正確な場所(例:/usr/lib/jvm/”java version”/jre/bin。ディレクトリは OS および Java のバージョンによって異なります)に移動し、次のコマンドを実行します。

      sudo keytool -genkeypair -alias "tomcat" -keyalg RSA -keysize 4096 -validity 3650 -keystore "/etc/tomcat/tomcat.keystore" -storepass "yourpassword" -keypass "yourpassword" -dname "CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown"

      ファイルパス/etc/tomcat/tomcat.keystoreはあくまで一例です。安全かつアクセスしやすい場所を自分で選んでください。

      -storepass および -keypass パラメータ

      -storepass-keypass の値は同じである必要があります。

  2. キーストアから証明書をエクスポートします。以下は、キーストアから証明書署名要求(CSR)をエクスポートするためのコマンド例です。

    sudo keytool -certreq -alias tomcat -file "/etc/tomcat/tomcat.csr" -keystore "/etc/tomcat/tomcat.keystore" -ext san=dns:ESETPROTECT
    値を適宜置き換えてください
    • -fileパラメータ「/etc/tomcat/tomcat.csr」を 、証明書をエクスポートしたい実際のパスとファイル名に置き換えてください。

    • -extパラメータの値「ESETPROTECT」を、ESET PROTECT On-Prem を搭載した Apache Tomcat が実行されているサーバーの実際のホスト名に置き換えてください。

  3. お好みのルート認証局 (CA) を使用して、SSL 証明書に署名してもらってください。

    後でルートCAをインポートする予定の場合は、手順6に進んでください。この方法で進める場合、Webブラウザに自己署名証明書に関する警告が表示される可能性があり、HTTPS経由でESET PROTECT On-Premに接続するには例外を追加する必要があります。

  4. CAのルート証明書と中間証明書をキーストアにインポートします。これらの証明書は通常、証明書に署名した機関から提供されます。これは、証明書の応答がキーストア内の信頼された証明書を使用して検証されるため、必要な手順です。

    sudo keytool -import -alias root -file "/etc/Tomcat/root.crt" -keystore "/etc/tomcat/tomcat.keystore"
    sudo keytool -import -alias intermediate -file "/etc/Tomcat/intermediate.crt.pem" -keystore "/etc/tomcat/tomcat.keystore"
  5. ルートCAによる署名付き証明書を受け取ったら、CAの公開鍵と証明書(tomcat.cer)をキーストアにインポートしてください。以下は、署名付き証明書をキーストアにインポートするコマンドの例です。

    sudo keytool -import -alias tomcat -file "/etc/tomcat/tomcat.cer" -keystore "/etc/tomcat/tomcat.keystore"
    値を適切に置き換えてください

    -fileパラメータの値「/etc/tomcat/tomcat.csr」を、署名済み証明書の実際のパスとファイル名に置き換えてください。

    既存の証明書(例えば、会社の証明書など)を使用する場合は、以下の手順に従ってください

  6. server.xml設定ファイルを編集し、<Connectorタグが以下の例のように記述されるようにしてください:

    <Connector server="OtherWebServer" port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat/tomcat.keystore" keystorePass="yourpassword"/>

    この変更により、セキュリティ対策が施されていない Tomcat 機能は無効化され、HTTPS のみが有効になります(scheme= パラメータ)。セキュリティ上の理由から、tomcat-users.xml を編集してすべての Tomcat ユーザーを削除し、ServerInfo.properties を変更して Tomcat の身元を隠す必要がある場合もあります。

  7. Apache Tomcat サービスを再起動してください。ESET PROTECT On-Prem では、サービス名としてtomcat9 が使用されている場合があります。

    sudo systemctl restart tomcat
    Linux でセキュア接続が依然として失敗する場合

    ここに重要な内容が入ります。

    /var/....../tomcatディレクトリに、次のようなエラーメッセージが表示される場合があります。「failed to initialize end point associated with ProtocolHandler ["http-bio-443"]。」

    問題が解決しない場合は、server.xmlファイル内のポート番号を1024 より大きい値に変更してください。1024 未満のポートは、root 以外のユーザーからはアクセスできない場合があります。何らかの理由でポート 443 を使用する必要がある場合でも、ポート番号を変更した上でポート転送を行うことは可能です。

    以下の手順に従って、ポートのリダイレクト(例:ポート 443 からポート 8443 へ)を有効にしてください:

    1. リモートWebコンソールへのアクセスを許可します:

      sudo iptables -A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT

      あるいは、ファイアウォールの設定ファイル(nano /etc/sysconfig/iptables)を開いて編集し、*natで始まりCOMMIT で終わるセクションに次の行を追加することもできます:

      -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports |8443)
    2. HTTP を無効にするには、ポート 8080 を削除します:

      sudo iptables -D INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
    3. ファイアウォールルールを保存します:

      iptables-save > /etc/network/iptables.rules
    4. SELinuxを無効にします。手順は、お使いのLinuxディストリビューションによって異なる場合があります。