[KB7857] Linux(8.x~10.x)上で動作するESET PROTECTのHTTPS/SSL接続のセットアップ

注意事項

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

問題

解決方法

HTTPS

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

既存の証明書を使用する

以下の手順は、安全な HTTPS 接続を確保するために使用される Apache Tomcat 用の証明書を参照しています。ESET PROTECTの証明書については、オンラインヘルプを参照してください。
  1. 証明書ファイル(certificate_file.pfxなど)をTomcatの設定ディレクトリ(/etc/tomcat/など)に移動します。

  2. etc/tomcat/にあるServer.xmlファイルを開きます。場所はLinuxディストリビューションによって異なります。
    • Server.xmlに <Connectorafter <Service name="Catalina">がない場合は、以下の文字列をServer.xmlにコピーする。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" />。
    • Server.xmlの <Service name="Catalina">の後に<Connector>がある場合は、以下のパラメータの値を任意の値に置き換える:

keystoreFile- 証明書ファイル(.pfx.keystore、またはその他)へのフル パスを指定します。JKS以外の証明書(たとえば、.pfxファイル)を使用する場合は、keyAliasを削除し(デフォルトでServer.xmlに存在する)、適切なkeystoreTypeを追加します。

keystorePass- 証明書のパスフレーズを指定します。

keystoreType-証明書のタイプを指定します。

  1. Tomcatサービスを再起動します(sudo systemctl restart tomcat)。
    • .keystoreファイルを使用する場合は、ファイルへのパス(keystoreFile="/etc/tomcat/tomcat.keystore")を使用し、keystoreTypeの代わりにkeyAlias(keyAlias="tomcat")を定義します。
    • HTTPを無効にする場合は
<!-- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> HTTPを無効にする場合は、次のようにします。
SELinuxの有効化

SELinuxを有効にしていて、無効な証明書フラグを受け取ったユーザーは、restorecon コマンドを実行して、SELinuxセキュリティ・コンテキストを復元する必要があるかもしれない。

restorecon /etc/tomcat/my_cert_file.pfx

ls -lZ

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


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

ESET PROTECT の安全な HTTPS/SSL 接続 を使用します。

  1. SSL証明書付きのキーストアを作成します。Javaが インストールされている必要があります。
    Apache TomcatにはJavaが必要です:
    • Java、ESET PROTECT、Apache Tomcatのビット数が同じ(32ビットまたは64ビット)であることを確認してください。
    • システムに複数のJavaバージョンがインストールされている場合は、古いバージョンのJavaをアンインストールし、最新のJavaのみを維持することをお勧めします。
    • 2019年1月以降、ビジネス、商用、またはプロダクション用途のOracle JAVA SE 8パブリックアップデートには、商用ライセンスが必要になります。JAVA SEサブスクリプションを購入しない場合は、本ガイドを使用して、コストのかからない代替に移行することができます。

Javaには、コマンドラインで証明書を作成できるkeytoolが含まれています。1つの証明書が危険にさらされても他のtomcatインスタンスが安全であることを保証するために、(複数のtomcatインスタンスがある場合は)tomcatインスタンスごとに新しい証明書を生成する必要があります。

以下は、SSL証明書付きのキーストアを 作成するサンプル・コマンドです:

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の値は同じでなければならない。
  1. キーストアから証明書をエクスポートする。以下は、キーストアから証明書署名要求をエクスポートするサンプル・コマンドです:
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搭載のApache Tomcatが動作しているサーバの実際のホスト名に置き換えます。
  1. 任意のルート認証局(CA)で署名されたSSL証明書を取得します。

    ルート認証局を後でインポートする場合は、ステップ 6 に進むことができます。この方法を選択した場合、ウェブブラウザに自己署名証明書に関する警告が表示されることがあり、HTTPS経由でESET PROTECTに接続するための例外を追加する必要があります。
  2. 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"

  3. ルートCAの署名付き証明書を受け取ったら、CAの公開鍵と証明書(tomcat.cer)をキーストアにインポートします。以下は、署名付き証明書をキーストアにインポートするコマンドのサンプルです:
sudo keytool -import -alias tomcat -file "/etc/tomcat/tomcat.cer" -keystore "/etc/tomcat/tomcat.keystore"
値を適切に置き換えてください。
-fileaパラメータの値"/etc/tomcat/tomcat.csr "は、署名済み証明書がある実際のパスとファイル名に置き換えてください。

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

  1. 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のIDを隠す必要がある場合もあります。

  1. Apache Tomcatサービスを再起動します。ESET PROTECT はtomcat9 というサービス名を使用する場合があります。
sudo systemctl restart tomcat

Linuxで安全な接続に失敗する場合は?
var/.../tomcatディレクトリにエラーメッセージが表示されます:
問題が解決しない場合は、server.xmlファイルのポートを1024より大きい値に変更してください。何らかの理由でポート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. ポート8080を削除してHTTPを無効にする:
    sudo iptables -D INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

  3. ファイアウォールのルールを保存します:
    iptables-save > /etc/network/iptables.rules

  4. SELinuxを無効にします。提供されている手順は、CentOS7を実行しているVirtual Appliance用のものであり、ご使用のLinuxディストリビューションによって異なる場合があります。

ESET AI Advisorとチャットでサポート