Ubuntu 10.04.3 LTSで、Tomcat 6をインストールした後、マネージャー/管理者アカウントを追加するには、次のようなレコードを/etc/Tomcat6/Tomcat-users.xml
に追加します。
<role rolename="manager"/>
<role rolename="admin"/>
<user username="user" password="password" roles="manager,admin"/>
そのパスワードは平文であり、私はそれに慣れていません。代わりにハッシュのようなものを使用する方法はありますか?あなたが非Ubuntuソリューションを持っているなら、私はおそらくそれを翻訳することができます。
このページ から取得
server.xml
の要素に「ダイジェスト」属性を追加します(可能な値は、たとえばmd5
、sha-1
またはsha-256
で、後者を強くお勧めします) )。$CATALINE_HOME/bin/digest.sh -a <YOUR_HASH_ALGORITHM> <YOUR_PASSWORD>
を実行します<YOUR_PASSWORD>:<ENCRYPTED_PASSWORD>
Tomcat-users.xml
のユーザーのpassword
属性の値を<ENCRYPTED_PASSWORD>
に置き換えますTomcat 8.0.15以降の情報を探している方は、単純なメッセージダイジェストよりもはるかに安全(つまり、解読が難しい)であるため、おそらくPBKDF2でSecretKeyCredentialHandlerを使用する必要があります。
たとえば、server.xmlで次のようにします。
<Realm className="org.Apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase">
<CredentialHandler className="org.Apache.catalina.realm.SecretKeyCredentialHandler"
algorithm="PBKDF2WithHmacSHA512"
keyLength="256"
/>
</Realm>
この構成では、以下を使用して、パスワードからハッシュされた出力を生成します。
$CATALINA_HOME/bin/digest.sh -a "PBKDF2WithHmacSHA512" -i 100000 -s 16 -k 256 -h "org.Apache.catalina.realm.SecretKeyCredentialHandler" "YOUR_PASSWORD"
選択した反復回数とソルトサイズ(バイト単位)を使用します。 バグ60446 のため、キーの長さはserver.xmlで定義されたものと同じである必要があることに注意してください。しかし、すぐに上流で修正されるはずです。
警告!パスワードがシェルのコマンド履歴に保存されないようにしてください。 bashでは、コマンドの前に空白スペースを置くことでこれを実現します。
コマンドは、パスワードをプレーンテキストで出力し、結果の資格情報の16進表記を出力します。これは、Tomcat-users.xmlのパスワード属性として使用する必要があります。
CredentialHandlerコンポーネントのドキュメントは here にあります。アルゴリズム属性の可能な値は、 ここ です。
1)パスワードを生成します:/bin>digest.bat -s 0 -a sha-256
例:/bin>digest.bat -s 0 -a sha-256 admin
使用するパスワードは次のとおりです:8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
*重要な注意:「-s 0」(salt 0)を使用する必要があります。使用しないと機能しません。
2)上記のパスワードをTomcat-users.xmlファイルに貼り付けます。
例:
<!-- for password “admin” -->
<user username="Tomcat" password="8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918" roles="manager-gui,manager,admin"></user>
3)SHA-256ダイジェストハッシュベースのパスワードを使用するようにserver.xmlを構成します。
4)「DIGEST」パスワードを使用するようにweb.xmlを構成し、上記に一致するようにRealmNameを更新します(HTMLManagerセクション内)
<catalina_home>/webapps/manager\WEB-INF\web.xml
<login-config>
<auth-method>DIGEST</auth-method>
<realm-name>UserDatabase</realm-name>
</login-config>
Full context:
<servlet>
<servlet-name>HTMLManager</servlet-name>
<servlet-class>org.Apache.catalina.manager.HTMLManagerServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
… SNIPPED_FOR_BREVITY ...
<login-config>
<auth-method>DIGEST</auth-method>
<realm-name>UserDatabase</realm-name>
</login-config>
<multipart-config>
<!-- 50MB max -->
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
</servlet>