기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
단계 2: 프라이빗 키 및 SSL/TLS 인증서 생성 또는 가져오기
HTTPS를 활성화하려면 Tomcat 웹 서버 애플리케이션에서 프라이빗 키와 해당되는 SSL/TLS 인증서가 필요합니다. 웹 서버 SSL/TLS 오프로드를 함께 사용하려면 클러스터의 HSM에 AWS CloudHSM개인 키를 저장해야 합니다. AWS CloudHSM
참고
아직 프라이빗 키와 해당 인증서가 없다면 HSM에서 프라이빗 키를 생성하세요. 프라이빗 키를 사용하여 SSL/TLS 인증서를 생성하는 데 사용하는 인증서 사인 요청(CSR)을 생성합니다.
HSM의 개인 키에 대한 참조와 관련 인증서를 포함하는 로컬 AWS CloudHSM KeyStore 파일을 생성합니다. 웹 서버는 SSL/TLS 오프로드 중에 이 AWS CloudHSM KeyStore 파일을 사용하여 HSM의 개인 키를 식별합니다.
프라이빗 키 생성
이 섹션에서는 From JDK를 사용하여 키페어를 생성하는 방법을 보여줍니다. KeyTool HSM 내에서 키 쌍을 생성한 후에는 이를 KeyStore 파일로 내보내고 해당 인증서를 생성할 수 있습니다.
사용 사례에 따라 RSA 또는 EC 키 페어를 생성할 수 있습니다. 다음 단계에서는 RSA 키 쌍을 생성하는 방법을 보여 줍니다.
의 genkeypair
KeyTool 명령을 사용하여 RSA 키 쌍을 생성합니다.
아래의
<VARIABLES>
을 특정 데이터로 바꾼 후 다음 명령을 사용하여 HSM의 프라이빗 키를 참조하는jsse_keystore.keystore
라는 이름의 키스토어 파일을 생성합니다.$
keytool -genkeypair -alias
<UNIQUE ALIAS FOR KEYS>
-keyalg<KEY ALGORITHM>
-keysize<KEY SIZE>
-sigalg<SIGN ALGORITHM>
\ -keystore<PATH>
/<JSSE KEYSTORE NAME>
.keystore -storetype CLOUDHSM \ -dname CERT_DOMAIN_NAME \ -J-classpath '-J'$JAVA_LIB'/*:/opt/cloudhsm/java/*:./*' \ -provider "com.amazonaws.cloudhsm.jce.provider.CloudHsmProvider" \ -providerpath "$CLOUDHSM_JCE_LOCATION" \ -keypass<KEY PASSWORD>
-storepass<KEYSTORE PASSWORD>
<PATH>
: 키스토어 파일을 생성하려는 경로입니다.<UNIQUE ALIAS FOR KEYS>
: HSM에서 키를 고유하게 식별하는 데 사용됩니다. 이 별칭은 키의 LABEL 속성으로 설정됩니다.<KEY PASSWORD>
: 키에 대한 참조를 로컬 Keystore 파일에 저장하며, 이 암호는 해당 로컬 참조를 보호합니다.<KEYSTORE PASSWORD>
: 로컬 키스토어 파일의 암호입니다.<JSSE KEYSTORE NAME>
: 키스토어 파일의 이름입니다.<CERT DOMAIN NAME>
: X.500 고유 이름.<KEY ALGORITHM>
: 키 페어를 생성하는 키 알고리즘(예: RSA 및 EC).<KEY SIZE>
: 키 페어를 생성하기 위한 키 크기(예: 2048, 3072, 4096).<SIGN ALGORITHM>
: 키 쌍을 생성하기 위한 키 크기(예: RSA를 사용하는 SHA1, RSA를 사용하는 SHA224, RSA를 사용하는 SHA256, RSA를 사용하는 SHA384, RSA를 사용하는 SHA512).
-
명령이 성공했는지 확인하려면 다음 명령을 입력하고 RSA 키 쌍이 성공적으로 생성되었는지 확인합니다.
$
ls
<PATH>
/<JSSE KEYSTORE NAME>
.keystore
자체 사인된 인증서를 생성합니다.
키스토어 파일과 함께 개인 키를 생성한 후에는 이 파일을 사용하여 인증서 서명 요청(CSR) 및 인증서를 생성할 수 있습니다.
프로덕션 환경에서는 일반적으로 CA(인증 기관)을 사용하여 CSR에서 인증서를 생성합니다. 테스트 환경에는 CA가 필요하지 않습니다. CA를 사용하는 경우 CA에 CSR 파일을 보내고 CA가 웹 서버에서 HTTPS용으로 제공하는 서명된 SSL/TLS 인증서를 사용하세요.
CA를 사용하는 대신 를 사용하여 자체 서명된 인증서를 KeyTool 만들 수 있습니다. 자체 사인된 인증서는 브라우저에서 신뢰하지 않으며 프로덕션 환경에서 사용해서는 안 됩니다. 테스트 환경에서는 이러한 인증서를 사용할 수 있습니다.
주의
자체 사인된 인증서는 테스트 환경에서만 사용해야 합니다. 프로덕션 환경의 경우 인증 기관과 같은 추가 보안 방법을 사용하여 인증서를 생성하세요.
주제
인증서 생성
-
이전 단계에서 생성한 키스토어 파일의 사본을 확보하세요.
-
다음 명령을 실행하여 를 사용하여 인증서 서명 요청 (CSR) 을 생성합니다. KeyTool
$
keytool -certreq -keyalg RSA -alias unique_alias_for_key -file certreq.csr \ -keystore
<JSSE KEYSTORE NAME>
.keystore -storetype CLOUDHSM \ -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keypass<KEY PASSWORD>
-storepass<KEYSTORE PASSWORD>
참고
인증서 서명 요청의 출력 파일은
certreq.csr
입니다.
인증서에 서명
-
아래
<VARIABLES>
를 특정 데이터로 대체한 후 다음 명령을 실행하여 HSM의 프라이빗 키로 CSR에 서명합니다. 이렇게 하면 자체 사인된 인증서가 생성됩니다.$
keytool -gencert -infile certreq.csr -outfile certificate.crt \ -alias
<UNIQUE ALIAS FOR KEYS>
-keypass<KEY_PASSWORD>
-storepass<KEYSTORE_PASSWORD>
-sigalg SIG_ALG \ -storetype CLOUDHSM -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keystore jsse_keystore.keystore참고
certificate.crt
는 별칭의 프라이빗 키를 사용하는 서명된 인증서입니다.
키스토어에서 인증서 가져오기
아래
<VARIABLES>
를 특정 데이터로 바꾼 후 다음 명령을 실행하여 서명된 인증서를 신뢰할 수 있는 인증서로 가져옵니다. 이 단계에서는 별칭으로 식별되는 키스토어 항목에 인증서를 저장합니다.$
keytool -import -alias
<UNIQUE ALIAS FOR KEYS>
-keystore jsse_keystore.keystore \ -file certificate.crt -storetype CLOUDHSM \ -v -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keypass<KEY PASSWORD>
-storepass<KEYSTORE_PASSWORD>
인증서를 PEM으로 변환합니다.
다음 명령을 실행하여 서명된 인증서 파일(.crt)을 PEM으로 변환합니다. PEM 파일은 http 클라이언트에서 요청을 보내는 데 사용됩니다.
$
openssl x509 -inform der -in certificate.crt -out certificate.pem
이 단계를 완료한 후 3단계: 웹 서버 구성으로 이동합니다.