메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


Ranger KMS with KTS의 TLS를 enable하고 restart할때 아래와 같은 오류가 발생되면서 start에 실패하는 경우가 있는데 원인은 Ranger KMS with KTS가 내부적으로 Key Trustee Server와 TLS통신을 하는데 Ranger KMS with KTS서버의 truststore에 등록된 Key Trustee Server서버의 인증서 유효기간이 만료된 경우 일 수 있어 등록된 인증서의 유효기간을 확인해 보고  필요시 Key Trustee Server서버의 사설인증서를 발급해서 Ranger KMS with KTS서버로 복사후 truststore 에 import하여 준다. 

(특히, Ranger KMS with Key Trustee Server의 "Enable TLS/SSL for Ranger KMS server with KTS"가 비활성화 되어 있으면 Ranger에서 변경한 cm_kms의 변경사항이 Client에 전달되지 않아 반영되지 않는다)


* 조치방법(Key Trustee Server노드에서 인증서를 새로 발급하고 이를 Ranger KMS with KTS의 truststore파일에 등록해준다)

--- 인증서 정보 확인----

1. Key Trustee Server의 인증서 확인

  - sudo openssl x509 -in /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.pem -text -noout

2. truststore파일의 인증서 목록 확인

  - sudo keytool -keystore /opt/cloudera/security/certs/truststore -storepass changeit -list -v 


--------Key Trustee Server의 active, passive에서 각각 수행한다.

3.1. ssl-cert-keytrustee용 비밀키 생성및 CSR생성

  <active노드에서>

  - sudo openssl genrsa -out /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk2.key 2048

  - sudo openssl req -new -key /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk2.key -out /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.csr

 <passive노드에서>

  - sudo openssl genrsa -out /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk2.key 2048

  - sudo openssl req -new -key /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk2.key -out /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.csr


3.2 ssl-cert-keytrustee용 신규 인증서 생성

   <active노드에서>

  - sudo openssl x509 -req -days 3650 -in /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.csr -signkey /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk2.key -out /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.pem

   <passive노드에서>

  - sudo openssl x509 -req -days 3650 -in /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.csr -signkey /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk2.key -out /var/lib/keytruste


3.3. Cloudera Manager Console에서 Key Trustee Server(2곳, active, passive)의 설정을 아래와 같이 변경하고 각 서비스를 restart해준다. 

  - Active Key Trustee Server TLS/SSL Server Certificate File (PEM Format):

    /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee.pem -> /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.pem

  - Active Key Trustee Server TLS/SSL Server Private key File (PEM Format):

    /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk.pem -> /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk2.key


  - Passive Key Trustee Server TLS/SSL Server Certificate File (PEM Format):

    /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee.pem -> /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.pem

  - Passive Key Trustee Server TLS/SSL Server Private key File (PEM Format):

    /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk.pem -> /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee-pk2.key


-------KTS의 인증서를 Ranger KMS with KTS로 복사및 Ranger KMS with KTS의 truststore파일에 import

4.1. KTS의 active노드에 있는 /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.pem를 cp로 active-ssl-cert-keytrustee2.pem로 만든 후 

   - Ranger KMS with KTS #1노드의 /home/hadoop에 복사 

   - Ranger KMS with KTS #2노드의 /home/hadoop에 복사 

4.2. KTS의 passive노드에 있는 /var/lib/keytrustee/.keytrustee/.ssl/ssl-cert-keytrustee2.pem를 cp로 passive-ssl-cert-keytrustee2.pem로 만든 후 

   - Ranger KMS with KTS #1노드의 /home/hadoop/에 복사 

   - Ranger KMS with KTS #2노드의 /home/hadoop/에 복사 

4.3.. Ranger KMS with KTS노드의 각각에서 아래 명령문을 수행하여 active및 passive인증서를 모두 import해준다.
  <<Ranger KMS with KTS #1 노드에서>>

  - sudo keytool -importcert -keystore /opt/cloudera/security/certs/truststore -file /home/hadoop/active-ssl-cert-keytrustee2.pem -alias activektca

  - sudo keytool -importcert -keystore /opt/cloudera/security/certs/truststore -file /home/hadoop/passive-ssl-cert-keytrustee2.pem -alias passivektca

  <<Ranger KMS with KTS #2 노드에서>>

  - sudo keytool -importcert -keystore /opt/cloudera/security/certs/truststore -file /home/hadoop/active-ssl-cert-keytrustee2.pem -alias activektca

  - sudo keytool -importcert -keystore /opt/cloudera/security/certs/truststore -file /home/hadoop/passive-ssl-cert-keytrustee2.pem -alias passivektca


4.4.Cloudera Manager Console에서 Ranger KMS with KTS의 TLS를 "Enable TLS/SSL for Ranger KMS Server with KTS"를 enable시키고 노드 2곳 모두 restart해준다



*오류 내용

ERROR TrusteeKeyProviderConfiguration FingerPrint lookup on a KTS server: sunsecurity.validator.ValidatorException: PKIX apth buildingfaile: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

번호 제목 글쓴이 날짜 조회 수
61 dual table만들기 총관리자 2014.05.16 835
60 sqoop에서 oracle관련 작업할때 테이블명, 사용자명, DB명은 모두 대문자로 사용할것 총관리자 2014.05.15 1528
59 sqoop export/import등을 할때 driver를 못찾는 오류가 발생하면... 총관리자 2014.05.15 867
58 oozie가 말하는 start시간은..서버에서 확인되는 시간이 아닙니다. 총관리자 2014.05.14 699
57 우분투 16.04 LTS에 apache2와 tomcat7 연동하여 설치하기 총관리자 2014.05.09 1429
56 ping 안될때.. networking restart 날려주면 잘됨.. 총관리자 2014.05.09 2977
55 insert hbase by hive ... error occured after 5 hours..HMaster가 뜨지 않는 장애에 대한 복구 방법 총관리자 2014.04.29 7129
54 빅데이터 분석을 위한 샘플 빅데이터 파일 다운로드 사이트 총관리자 2014.04.28 3285
53 index생성, 삭제, 활용 총관리자 2014.04.25 1702
52 hbase shell에서 컬럼값 검색하기(SingleColumnValueFilter이용) 총관리자 2014.04.25 2448
51 unique한 값 생성 총관리자 2014.04.25 888
50 sequence한 번호 생성방법 총관리자 2014.04.25 1123
49 ubuntu 12.4에서 eclipse설치후 기동시 library(swt-gtk*)관련 오류 총관리자 2014.04.23 1261
48 Building a Cluster docs 총관리자 2014.04.22 1083
47 sqoop 1.4.4 설치및 테스트 총관리자 2014.04.21 3134
46 The disk drive for uuid= is not ready yet or not present 오류 해결방법 총관리자 2014.04.21 1265
45 os가 windows7인 host pc에서 ubuntu가 os인 guest pc에 접근하기 위한 네트워크설정 총관리자 2014.04.20 725
44 oozie에서 share lib설정시 action type별로 구분하여 넣을것 총관리자 2014.04.18 1195
43 json serde사용법 총관리자 2014.04.17 1140
42 json 값 다루기 총관리자 2014.04.17 1222

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로