Tomcat 사용자에게 일반 텍스트가 아닌 비밀번호를 사용하려면 어떻게합니까? Tomcat 6을 설치 한 후 관리자 /

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"/>

그 암호는 평문으로되어있어서 불편합니다. 대신 해시와 같은 것을 사용하는 방법이 있습니까? 우분투가 아닌 솔루션이 있다면 아마도 번역 할 수 있습니다.



답변

이 페이지 에서 가져온

  1. 당신의 요소 “소화”속성을 추가 server.xml(가능한 값은 예를 들어있는 값으로 해시 알고리즘으로 md5, sha-1또는 sha-256후자가 권장된다).
  2. 운영 $CATALINE_HOME/bin/digest.sh -a <YOUR_HASH_ALGORITHM> <YOUR_PASSWORD>
  3. 다음과 같은 형식으로 출력됩니다. <YOUR_PASSWORD>:<ENCRYPTED_PASSWORD>
  4. 의 사용자 password속성 값 tomcat-users.xml<ENCRYPTED_PASSWORD>
  5. 바람둥이를 다시 시작

참조 : Tomcat 다이제스트 비밀번호


답변

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 구성 요소에 대한 문서는 여기 에서 찾을 수 있습니다 . 알고리즘 속성의 가능한 값은 여기 에서 찾을 수 있습니다 .


답변

1) 비밀번호 생성 : /bin>digest.bat -s 0 -a sha-256

예 : /bin>digest.bat -s 0 -a sha-256 admin

사용할 비밀번호는 다음과 같습니다. 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

* 중요 사항 : “-s 0″(소금 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>