신뢰를 보증하는 인증 기관에서 서명된 기존 써드파티 인증서를 사용해야 하는 환경에서
Liberty를 실행하십시오.
시작하기 전에
- 인증서를 포함하는 server.crt 파일과 개인 키를 포함하는 server.key 파일을 작성하십시오.
- openssl 명령과 Java keytool 명령을 사용하여
server.crt 파일 및 server.key 파일을 기반으로
하는 trust.jks 파일 및 key.jks 파일을 작성하십시오.
다음 예제를
사용하여 키 저장소 및 신뢰 저장소 JKS 파일을 작성하십시오.
- 서버 CA 인증서와 키를 PKCS12(Public Key Cryptography Standards 12) 형식으로 내보내십시오.
openssl pkcs12 -export -in server.crt -inkey server.key -out key.p12 -name default -passout pass:mypassword
- 서버 PKCS12 파일을 키 저장소 key.jks 파일로 가져오십시오.
keytool -importkeystore -deststorepass mypassword -destkeypass mypassword -destkeystore key.jks -srckeystore key.p12 -srcstoretype PKCS12 -srcstorepass mypassword -alias default
- 서버 CA 인증서를 키 저장소 trust.jks 파일로 가져오십시오.
keytool -importcert -keystore trust.jks -storepass mypassword -file server.crt -alias default -noprompt
- SSL 구성이 이미 작성되었는지 판별하십시오. 판별하려면 다음 명령을 실행하여
시크릿이 있는지 확인하십시오.
kubectl get secrets
SSL 구성이
존재하면 다음 시크릿이 표시됩니다.
mb-keystore, mb-keystore-password, mb-truststore, mb-truststore-password
프로시저
- SSL 구성이 작성되지 않은 경우에는 다음 단계를 완료하여 써드파티 인증서를 사용하여 자동으로 SSL을 사용하도록 설정하십시오.
- 다음 Kubernetes 비밀 키를 작성하십시오. 이 예제에서는 Liberty
securityUtility encode 명령을 사용하여 XOR 암호화 방법으로
키 저장소 및 신뢰 저장소 비밀번호를 인코딩합니다.
kubectl create secret generic mb-keystore --from-file=./key.jks
kubectl create secret generic mb-truststore --from-file=./trust.jks
kubectl create secret generic mb-keystore-password --from-literal=password="{xor}Ej4xPjg6MjoxKw =="
kubectl create secret generic mb-truststore-password --from-literal=password="{xor}Ej4xPjg6MjoxKw=="
- Liberty Helm 차트를 배치할 때 다음 값을 설정하십시오.
- ssl.enabled=true
- 이 옵션은 Helm 차트에 보안 프로토콜, 즉, HTTPS를 사용하도록 지시합니다.
- ssl.useClusterSSLConfiguration=true
- 이 옵션은 Helm 차트에 작성된 인증서를 마운트하도록 지시합니다. 해당 인증서는 키 저장소 및 신뢰 저장소에 대해 사용됩니다.
- ssl.createClusterSSLConfiguration=true
- 이 옵션은 Helm 차트에 써드파티 인증서 및 비밀번호 시크릿을 사용하는
Liberty 구성을 작성하도록 지시합니다. true로
설정된 경우, 이 옵션이 사용자가 방금 작성한 인증서 및 시크릿을 겹쳐쓰지 않습니다.
- service.port=secure_port_number
- 기본 보안 포트는 9443입니다.
- service.targetPort=secure_port_number
- 기본 보안 포트는 9443입니다.
- ingress.secureBackends=true
- Ingress를 사용하도록 설정된 경우, Ingress가 보안 Liberty 애플리케이션과 통신할 수 있도록 이 옵션을 사용하십시오.
- SSL 구성이 이미 작성된 경우에는 다음 단계를 완료하여 자동으로 SSL을 사용하도록 설정하십시오.
- 이전에 작성된 시크릿을 삭제하십시오.
kubectl delete secrets mb-keystore mb-keystore-password mb-truststore mb-truststore-password
- 다음 Kubernetes 비밀 키를 작성하십시오.
kubectl create secret generic mb-keystore --from-file=./key.jks
kubectl create secret generic mb-truststore --from-file=./trust.jks
kubectl create secret generic mb-keystore-password --from-literal=password="{xor}Ej4xPjg6MjoxKw=="
kubectl create secret generic mb-truststore-password --from-literal=password="{xor}Ej4xPjg6MjoxKw=="
- Liberty Helm 차트를 배치할 때 다음 값을 설정하십시오.
- ssl.enabled=true
- 이 옵션은 Helm 차트에 보안 프로토콜, 즉, HTTPS를 사용하도록 지시합니다.
- ssl.useClusterSSLConfiguration=true
- 이 옵션은 Helm 차트에 작성된 인증서를 마운트하도록 지시합니다. 해당 인증서는 키 저장소 및 신뢰 저장소에 대해 사용됩니다.
- ssl.createClusterSSLConfiguration=false
- 이 옵션은 Helm 차트에 써드파티 인증서 및 비밀번호 시크릿을 사용하는
Liberty 구성을 작성하지 않도록 지시합니다.
- service.port=secure_port_number
- 기본 보안 포트는 9443입니다.
- service.targetPort=secure_port_number
- 기본 보안 포트는 9443입니다.
- ingress.secureBackends=true
- Ingress를 사용하도록 설정된 경우, Ingress가 보안 Liberty 애플리케이션과 통신할 수 있도록 이 옵션을 사용하십시오.