Tomcat https 서비스(SSL, keystore)

■ tomcat https 서비스(SSL, keystore)에 대하여 알아본다.

■ java/bin 디렉토리에 있는 keytool 명령어로 테스트 인증서를 생성한다. 인증서의 파일명은 아래와 같이 실행하면 ‘testserver’라는 파일명으로 현재 디렉토리에 생성된다. 생성된 인증서 파일인 testserver는 /home/webapps/jenkins 디렉토리에 복사한다.

$ keytool -genkey -keyalg rsa -alias test.keystore -keystore test.keystore
키 저장소 비밀번호 입력: 1234567890 [엔터]
새 비밀번호 다시 입력: 1234567890 [엔터]
이름과 성을 입력하십시오.
  [Unknown]:  name [엔터]
조직 단위 이름을 입력하십시오.
  [Unknown]:  org [엔터]
조직 이름을 입력하십시오.
  [Unknown]:  orgNM [엔터]
구/군/시 이름을 입력하십시오?
  [Unknown]:  gugunsi [엔터]
시/도 이름을 입력하십시오.
  [Unknown]:  sido [엔터]
이 조직의 두 자리 국가 코드를 입력하십시오.
  [Unknown]:  kr [엔터]
CN=name, OU=org, O=orgNM, L=gugunsi, ST=sido, C=kr이(가) 맞습니까?
  [아니오]:  y [엔터]

<test.keystore>에 대한 키 비밀번호를 입력하십시오.
	(키 저장소 비밀번호와 동일한 경우 Enter 키를 누름):  [엔터]
bash$ ls
test.keystore
bash$ test.keystore /home/webppas/jenkins

■ server.xml을 아래와 같이 수정후 톰캣 재기동 한다. 10000, 18019 포트의 Connector는 주석처리해도 무방하다.

<Service name="Catalina2">
  <Connector port="10000" protocol="HTTP/1.1"
    maxThreads="150" connectionTimeout="20000"
    redirectPort="19443" />
  
  <Connector port="18019" protocol="AJP/1.3" redirectPort="19443" />

  <Connector port="19443" 
    protocol="org.apache.coyote.http11.Http11Protocol"
    maxThreads="150" SSLEnabled="true" 
    scheme="https" secure="true"
    keystorePass="1234567890" 
    keystoreFile="/home/webapps/jenkins/test.keystore"
    clientAuth="false" sslProtocol="TLS" />
 
  <Engine name="Catalina2" defaultHost="localhost">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
      resourceName="UserDatabase"/>

    <Host name="localhost"  appBase="/home/webapps/jenkins"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
    </Host>
  </Engine>
</Service>

■ 톰캣 재기동 후 https://[톰캣설치주소]:19443/jenkins로 접속하면 https로 서비스되고 있는 jenkins를 확인할 수 있다.(참고로 jenkins는 jenkins.war로 설치되었음)

   

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다