OpenSSL가 있는 NGINX 또는 Apache를 사용하여 Linux에서 AWS CloudHSM SSL/TLS 오프로드
이 주제는 Linux 웹 서버에서 AWS CloudHSM을 사용하여 SSL/TLS 오프로드를 설정하기 위한 단계별 지침을 제공합니다.
개요
Linux에서는 HTTPS를 지원하기 위해 NGINX 및 Apache HTTP Server 웹 서버 소프트웨어가 OpenSSL에 통합되어 있습니다. OpenSSL용 AWS CloudHSM Dynamic Engine은 웹 서버 소프트웨어가 암호화 오프로딩 및 키 스토리지를 위해 클러스터에서 HSM을 사용할 수 있도록 인터페이스를 제공합니다. OpenSSL 엔진은 웹 서버를 AWS CloudHSM 클러스터에 연결하는 브리지입니다.
이 자습서를 완료하려면 Linux에서 NGINX 웹 서버 소프트웨어를 사용할지, Apache 웹 서버 소프트웨어를 사용할지 먼저 선택해야 합니다. 그런 다음 이 자습서에서는 다음을 수행하는 방법을 보여줍니다.
-
Amazon EC2 인스턴스에 웹 서버 소프트웨어를 설치합니다.
-
AWS CloudHSM 클러스터에 프라이빗 키가 저장되는 HTTPS를 지원하도록 웹 서버 소프트웨어를 구성합니다.
-
(선택 사항) Amazon EC2를 사용하여 두 번째 웹 서버 인스턴스를 만들고 Elastic Load Balancing을 사용하여 로드 밸런서를 만듭니다. 로드 밸런서를 사용하면 여러 서버에 부하를 분산하여 성능을 향상할 수 있습니다. 또한 하나 이상의 서버에 장애가 발생할 경우 중복성과 더 높은 가용성을 제공할 수 있습니다.
시작할 준비가 되면 1단계: 사전 조건 설정로 이동합니다.
1단계: 사전 조건 설정
플랫폼마다 필요한 필수 조건이 다릅니다. 플랫폼에 맞는 아래의 사전 조건 섹션을 사용하세요.
클라이언트 SDK 사전 조건 5
클라이언트 SDK 5으로 웹 서버 SSL/TLS 오프로드를 설정하려면 다음이 필요합니다.
-
두 개 이상의 하드웨어 보안 모듈(HSM)이 있는 활성 AWS CloudHSM 클러스터
-
다음 소프트웨어가 설치된 Linux 운영 체제를 실행하는 Amazon EC2 인스턴스.
-
HSM에서 웹 서버의 프라이빗 키를 소유하고 관리할 CU(Crypto User)입니다.
HSM에서 Linux 웹 서버 인스턴스를 설정하고 CU를 생성하려면
-
AWS CloudHSM의 OpenSSL Dynamic Engine을 설치 및 구성합니다. OpenSSL 동적 엔진 설치에 대한 자세한 내용은 클라이언트용 OpenSSL 동적 엔진 SDK 5를 참조하세요.
-
클러스터에 액세스할 수 있는 EC2 Linux 인스턴스에서 NGINX 또는 Apache 웹 서버를 설치하세요.
- Amazon Linux
-
- Amazon Linux 2
-
-
Amazon Linux 2에서 최신 버전의 NGINX를 다운로드하는 방법에 대한 자세한 내용은 NGINX 웹 사이트를 참조하세요.
Amazon Linux 2에서 사용할 수 있는 NGINX의 최신 버전은 OpenSSL의 시스템 버전보다 최신 버전의 OpenSSL을 사용합니다. NGINX를 설치한 후에는 OpenSSL Dynamic Engine 라이브러리에서 이 버전의 AWS CloudHSM OpenSSL이 예상하는 위치로 연결되는 심볼릭 링크를 생성해야 합니다.
$
sudo ln -sf /opt/cloudhsm/lib/libcloudhsm_openssl_engine.so /usr/lib64/engines-1.1/cloudhsm.so
-
Apache
$
sudo yum install httpd mod_ssl
- CentOS 7
-
-
CentOS 7에서 최신 버전의 NGINX를 다운로드하는 방법에 대한 자세한 내용은 NGINX 웹 사이트를 참조하세요.
CentOS 7에서 사용할 수 있는 NGINX의 최신 버전은 OpenSSL의 시스템 버전보다 최신 버전의 OpenSSL을 사용합니다. NGINX를 설치한 후에는 OpenSSL Dynamic Engine 라이브러리에서 이 버전의 AWS CloudHSM OpenSSL이 예상하는 위치로 연결되는 심볼릭 링크를 생성해야 합니다.
$
sudo ln -sf /opt/cloudhsm/lib/libcloudhsm_openssl_engine.so /usr/lib64/engines-1.1/cloudhsm.so
-
Apache
$
sudo yum install httpd mod_ssl
- Red Hat 7
-
-
Red Hat 7에서 최신 버전의 NGINX를 다운로드하는 방법에 대한 자세한 내용은 NGINX 웹 사이트를 참조하세요.
Red Hat 7에서 사용할 수 있는 NGINX의 최신 버전은 OpenSSL의 시스템 버전보다 최신 버전의 OpenSSL을 사용합니다. NGINX를 설치한 후에는 OpenSSL Dynamic Engine 라이브러리에서 이 버전의 AWS CloudHSM OpenSSL이 예상하는 위치로 연결되는 심볼릭 링크를 생성해야 합니다.
$
sudo ln -sf /opt/cloudhsm/lib/libcloudhsm_openssl_engine.so /usr/lib64/engines-1.1/cloudhsm.so
-
Apache
$
sudo yum install httpd mod_ssl
- CentOS 8
-
- Red Hat 8
-
- Ubuntu 18.04
-
- Ubuntu 20.04
-
- Ubuntu 22.04
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
CloudHSM CLI를 사용하여 CU를 생성합니다. HSM 사용자 관리에 대한 자세한 내용은 CloudHSM CLI를 사용한 HSM 사용자 관리를 참조하십시오.
CU의 사용자 이름과 암호를 기록합니다. 나중에 웹 서버용 HTTPS 프라이빗 키와 인증서를 생성하거나 가져올 때 이 정보가 필요합니다.
이 단계들을 완료한 후 단계 2: 프라이빗 키 및 SSL/TLS 인증서 생성 또는 가져오기로 이동합니다.
참고
-
보안이 강화된 리눅스(SELinux) 및 웹 서버를 사용하려면 클라이언트 SDK 5가 HSM과 통신하는 데 사용하는 포트인 포트 2223에서 아웃바운드 TCP 연결을 허용해야 합니다.
-
클러스터를 생성 및 활성화하고 EC2 인스턴스에 클러스터 액세스 권한을 부여하려면 AWS CloudHSM 시작하기의 단계를 완료하십시오. 시작하기에서는 HSM 1개와 Amazon EC2 클라이언트 인스턴스 1개로 활성 클러스터를 생성하는 방법에 대한 단계별 지침을 제공합니다. 이 클라이언트 인스턴스를 웹 서버로 사용할 수 있습니다.
-
클라이언트 키 내구성을 비활성화하지 않으려면 클러스터에 HSM을 두 개 이상 추가하십시오. 자세한 내용은 AWS CloudHSM 클러스터에 HSM 추가 섹션을 참조하세요.
-
SSH 또는 PuTTY를 사용하여 클라이언트 인스턴스에 연결할 수 있습니다. 자세한 정보는 Amazon EC2 설명서의 SSH를 사용하여 Linux 인스턴스에 연결과 PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결 단원을 참조하세요.
Client SDK 3의 필요 조건
클라이언트 SDK 3으로 웹 서버 SSL/TLS 오프로드를 설정하려면 다음이 필요합니다.
-
HSM이 하나 이상 있는 활성 AWS CloudHSM 클러스터
-
다음 소프트웨어가 설치된 Linux 운영 체제를 실행하는 Amazon EC2 인스턴스.
-
AWS CloudHSM 클라이언트 및 명령줄 도구
-
NGINX 또는 Apache 웹 서버 애플리케이션.
-
OpenSSL용 AWS CloudHSM Dynamic Engine
-
HSM에서 웹 서버의 프라이빗 키를 소유하고 관리할 CU(Crypto User)입니다.
HSM에서 Linux 웹 서버 인스턴스를 설정하고 CU를 생성하려면
-
시작하기의 단계를 수행하세요. 그러면 하나의 HSM과 Amazon EC2 클라이언트 인스턴스가 있는 활성 클러스터가 생깁니다. EC2 인스턴스는 명령줄 도구를 사용하여 구성됩니다. 이 클라이언트 인스턴스를 웹 서버로 사용합니다.
-
클라이언트 인스턴스에 연결합니다. 자세한 정보는 Amazon EC2 설명서의 SSH를 사용하여 Linux 인스턴스에 연결과 PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결 단원을 참조하세요.
-
클러스터에 액세스할 수 있는 EC2 Linux 인스턴스에서 NGINX 또는 Apache 웹 서버를 설치하세요.
- Amazon Linux
-
- Amazon Linux 2
-
-
NGINX 버전 1.19는 Amazon Linux 2의 클라이언트 SDK 3 엔진과 호환되는 NGINX의 최신 버전입니다.
자세한 내용을 확인하고 NGINX 버전 1.19를 다운로드하려면 NGINX 웹 사이트를 참조하세요.
-
Apache
$
sudo yum install httpd mod_ssl
- CentOS 7
-
-
NGINX 버전 1.19는 CentOS 7의 클라이언트 SDK 3 엔진과 호환되는 NGINX의 최신 버전입니다.
자세한 내용을 확인하고 NGINX 버전 1.19를 다운로드하려면 NGINX 웹 사이트를 참조하세요.
-
Apache
$
sudo yum install httpd mod_ssl
- Red Hat 7
-
-
NGINX 버전 1.19는 Red Hat 7의 클라이언트 SDK 3 엔진과 호환되는 NGINX의 최신 버전입니다.
자세한 내용을 확인하고 NGINX 버전 1.19를 다운로드하려면 NGINX 웹 사이트를 참조하세요.
-
Apache
$
sudo yum install httpd mod_ssl
- Ubuntu 16.04
-
- Ubuntu 18.04
-
-
(선택 사항) 클러스터에 HSM을 더 추가합니다. 자세한 내용은 AWS CloudHSM 클러스터에 HSM 추가 섹션을 참조하세요.
-
cloudhsm_mgmt_util을 사용하여 CU를 생성합니다. 자세한 내용은 HSM 사용자 섹션을 참조하세요. CU의 사용자 이름과 암호를 기록합니다. 나중에 웹 서버용 HTTPS 프라이빗 키와 인증서를 생성하거나 가져올 때 이 정보가 필요합니다.
이 단계들을 완료한 후 단계 2: 프라이빗 키 및 SSL/TLS 인증서 생성 또는 가져오기로 이동합니다.
단계 2: 프라이빗 키 및 SSL/TLS 인증서 생성 또는 가져오기
HTTPS를 활성화하려면 웹 서버 애플리케이션(NGINX 또는 Apache)에 프라이빗 키와 해당 SSL/TLS 인증서가 필요합니다. AWS CloudHSM에 웹 서버 SSL/TLS 오프로드를 사용하려면 AWS CloudHSM 클러스터의 HSM에 프라이빗 키를 저장해야 합니다. 이 작업은 다음 중 한 가지 방법으로 수행할 수 있습니다.
이전 방법 중 어떤 방법을 선택하든 관계없이 HSM에서 가짜 PEM 프라이빗 키를 내보냅니다. 즉 HSM에 저장된 프라이빗 키에 대한 참조를 포함하는 PEM 형식의 프라이빗 키 파일입니다(실제 프라이빗 키가 아님). 웹 서버는 SSL/TLS 오프로드 중에 가짜 PEM 프라이빗 키 파일을 사용하여 HSM의 프라이빗 키를 식별합니다.
프라이빗 키 및 인증서 생성
프라이빗 키 생성
이 섹션에서는 Client SDK 3의 키 관리 유틸리티(KMU)를 사용하여 키 페어를 생성하는 방법을 보여줍니다. HSM 내부에 키 페어가 생성되면 이를 가짜 PEM 파일로 내보내고 해당 인증서를 생성할 수 있습니다.
키 관리 유틸리티(KMU)로 생성된 프라이빗 키는 Client SDK 3 및 Client SDK 5 모두에서 사용할 수 있습니다.
키 관리 유틸리티(KMU) 설치 및 구성
-
클라이언트 인스턴스에 연결합니다.
-
Client SDK 3 설치 및 구성.
-
다음 명령을 실행하여 AWS CloudHSM 클라이언트를 시작합니다.
- Amazon Linux
$
sudo start cloudhsm-client
- Amazon Linux 2
$
sudo service cloudhsm-client start
- CentOS 7
$
sudo service cloudhsm-client start
- CentOS 8
$
sudo service cloudhsm-client start
- RHEL 7
$
sudo service cloudhsm-client start
- RHEL 8
$
sudo service cloudhsm-client start
- Ubuntu 16.04 LTS
$
sudo service cloudhsm-client start
- Ubuntu 18.04 LTS
$
sudo service cloudhsm-client start
- Ubuntu 20.04 LTS
$
sudo service cloudhsm-client start
- Ubuntu 22.04 LTS
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
다음 명령을 실행하여 key_mgmt_util 명령줄 도구를 시작합니다.
$
/opt/cloudhsm/bin/key_mgmt_util
-
다음 명령을 실행하여 HSM에 로그인합니다. <user name>
및 <password>
를 CU(Cryptographic User)의 사용자 이름과 암호로 바꿉니다.
Command:
loginHSM -u CU -s <user name>
-p <password>>
프라이빗 키 생성
사용 사례에 따라 RSA 또는 EC 키 페어를 생성할 수 있습니다. 다음 중 하나를 수행하십시오.
-
HSM에서 RSA 프라이빗 키를 생성하려면
genRSAKeyPair
명령을 사용하여 RSA 키 페어를 생성합니다. 이 예제에서는 모듈러스가 2048이고 퍼블릭 지수가 65537이고 레이블이 tls_rsa_keypair
인 RSA 키 페어를 생성합니다.
Command:
genRSAKeyPair -m 2048 -e 65537 -l tls_rsa_keypair
명령이 성공하면 RSA 키 페어가 성공적으로 생성되었음을 나타내는 다음 출력이 표시됩니다.
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS
Cfm3GenerateKeyPair: public key handle: 7 private key handle: 8
Cluster Status:
Node id 1 status: 0x00000000 : HSM Return: SUCCESS
-
HSM에서 EC 프라이빗 키를 생성하려면
genECCKeyPair
명령을 사용하여 EC 키 쌍을 생성합니다. 이 예제에서는 곡선 ID가 2(NID_X9_62_prime256v1
곡선에 해당)이고 레이블이 tls_ec_keypair
인 EC 키 페어를 생성합니다.
Command:
genECCKeyPair -i 2 -l tls_ec_keypair
명령이 성공하면 EC 키 페어가 성공적으로 생성되었음을 나타내는 다음 출력이 표시됩니다.
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS
Cfm3GenerateKeyPair: public key handle: 7 private key handle: 8
Cluster Status:
Node id 1 status: 0x00000000 : HSM Return: SUCCESS
가짜 PEM 프라이빗 키 파일 내보내기
HSM에 프라이빗 키가 있으면 가짜 PEM 프라이빗 키 파일을 내보내야 합니다. 이 파일에은 실제 키 데이터가 포함하지 않지만 OpenSSL 동적 엔진이 HSM의 프라이빗 키를 식별할 수 있도록 해줍니다. 그런 다음 프라이빗 키를 사용하여 CSR(인증서 서명 요청)을 생성하고 CSR에 서명하여 인증서를 생성할 수 있습니다.
키 관리 유틸리티(KMU)로 생성된 가짜 PEM 파일은 Client SDK 3 및 Client SDK 5 모두에서 사용할 수 있습니다.
가짜 PEM으로 내보내려는 키에 해당하는 키 핸들을 식별한 후 다음 명령을 실행하여 프라이빗 키를 가짜 PEM 형식으로 내보내고 파일에 저장합니다. 다음 값을 사용자의 값으로 대체합니다.
Command:
getCaviumPrivKey -k <private_key_handle>
-out <web_server_fake_PEM.key>
Exit
다음 명령을 실행하여 key_mgmt_util을 중지합니다.
Command:
exit
이제 이전 명령에서 <web_server_fake_PEM.key>
로 지정된 경로에 시스템에 새 파일이 있어야 합니다. 이 파일은 가짜 PEM 프라이빗 키 파일입니다.
자체 사인된 인증서를 생성합니다.
가짜 PEM 프라이빗 키를 생성한 후에는 이 파일을 사용하여 인증서 사인 요청(CSR) 및 인증서를 생성할 수 있습니다.
프로덕션 환경에서는 일반적으로 CA(인증 기관)을 사용하여 CSR에서 인증서를 생성합니다. 테스트 환경에는 CA가 필요하지 않습니다. CA를 사용하는 경우 CA에 CSR 파일을 보내고 CA가 웹 서버에서 HTTPS용으로 제공하는 서명된 SSL/TLS 인증서를 사용하세요.
CA를 사용하는 대신 AWS CloudHSM OpenSSL Dynamic Engine을 사용하여 자체 서명된 인증서를 생성할 수 있습니다. 자체 사인된 인증서는 브라우저에서 신뢰하지 않으며 프로덕션 환경에서 사용해서는 안 됩니다. 테스트 환경에서는 이러한 인증서를 사용할 수 있습니다.
자체 사인된 인증서는 테스트 환경에서만 사용해야 합니다. 프로덕션 환경의 경우 인증 기관과 같은 추가 보안 방법을 사용하여 인증서를 생성하십시오.
OpenSSL Dynamic Engine 설치 및 구성
-
클라이언트 인스턴스에 연결합니다.
-
설치 및 구성하려면 다음 중 하나를 수행하십시오.
인증서 생성
-
이전 단계에서 생성한 가짜 PEM 파일의 사본을 확보하세요.
-
CSR 생성
다음 명령을 실행하여 AWS CloudHSM OpenSSL Dynamic Engine을 사용하여 인증서 서명 요청(CSR)을 생성합니다. <web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다. <web_server.csr>
을 CSR이 포함된 파일의 이름으로 바꿉니다.
req
명령은 대화식입니다. 각 필드에 응답합니다. 필드 정보가 SSL/TLS 인증서에 복사됩니다.
$
openssl req -engine cloudhsm -new -key <web_server_fake_PEM.key>
-out <web_server.csr>
-
자체 서명된 인증서 생성
다음 명령을 실행하여 AWS CloudHSM OpenSSL Dynamic Engine을 사용하여 HSM의 프라이빗 키로 CSR에 서명합니다. 이렇게 하면 자체 사인된 인증서가 생성됩니다. 명령의 다음 값을 사용자의 값으로 바꿉니다.
-
<web_server.csr>
– CSR이 포함된 파일 이름
-
<web_server_fake_PEM.key>
– 가짜 PEM 프라이빗 키가 포함된 파일 이름
-
<web_server.crt>
– 웹 서버 인증서가 포함될 파일 이름
$
openssl x509 -engine cloudhsm -req -days 365 -in <web_server.csr>
-signkey <web_server_fake_PEM.key>
-out <web_server.crt>
이 단계들을 완료한 후 3단계: 웹 서버 구성하기로 이동합니다.
기존 프라이빗 키 및 인증서 가져오기
웹 서버에서 HTTPS에 사용할 프라이빗 키와 해당 SSL/TLS 인증서가 이미 있을 수도 있습니다. 그런 경우, 이 섹션의 단계에 따라 해당 키를 HSM으로 가져올 수 있습니다.
프라이빗 키 가져오기 및 Client SDK 호환성에 대한 몇 가지 참고 사항:
-
기존 프라이빗 키를 가져오려면 Client SDK 3이 필요합니다.
-
Client SDK 5와 함께 Client SDK 3의 프라이빗 키를 사용할 수 있습니다.
-
Client SDK 3용 OpenSSL 동적 엔진은 최신 Linux 플랫폼을 지원하지 않지만 Client SDK 5용 OpenSSL 동적 엔진 구현은 지원합니다. Client SDK 3과 함께 제공되는 KMU(키 관리 유틸리티)를 사용하여 기존 프라이빗 키를 가져온 다음 해당 프라이빗 키를 사용하고 Client SDK 5로 OpenSSL Dynamic Engine을 구현하여 최신 Linux 플랫폼에서 SSL/TLS 오프로드를 지원할 수 있습니다.
Client SDK 3을 사용하여 기존 프라이빗 키를 HSM으로 가져오려면
-
Amazon EC2 클라이언트 인스턴스에 연결합니다. 필요한 경우, 기존 프라이빗 키와 인증서를 인스턴스로 복사합니다.
-
Client SDK 3 설치 및 구성
-
다음 명령을 실행하여 AWS CloudHSM 클라이언트를 시작합니다.
- Amazon Linux
$
sudo start cloudhsm-client
- Amazon Linux 2
$
sudo service cloudhsm-client start
- CentOS 7
$
sudo service cloudhsm-client start
- CentOS 8
$
sudo service cloudhsm-client start
- RHEL 7
$
sudo service cloudhsm-client start
- RHEL 8
$
sudo service cloudhsm-client start
- Ubuntu 16.04 LTS
$
sudo service cloudhsm-client start
- Ubuntu 18.04 LTS
$
sudo service cloudhsm-client start
- Ubuntu 20.04 LTS
$
sudo service cloudhsm-client start
- Ubuntu 22.04 LTS
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
다음 명령을 실행하여 key_mgmt_util 명령줄 도구를 시작합니다.
$
/opt/cloudhsm/bin/key_mgmt_util
-
다음 명령을 실행하여 HSM에 로그인합니다. <user name>
및 <password>
를 CU(Cryptographic User)의 사용자 이름과 암호로 바꿉니다.
Command:
loginHSM -u CU -s <user name>
-p <password>
-
다음 명령을 실행하여 프라이빗 키를 HSM으로 가져옵니다.
-
다음 명령을 실행하여 현재 세션에만 유효한 대칭 래핑 키를 생성합니다. 명령과 출력은 다음과 같습니다.
Command:
genSymKey -t 31 -s 16 -sess -l wrapping_key_for_import
Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS
Symmetric Key Created. Key Handle: 6
Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
-
다음 명령을 실행하여 기존 프라이빗 키를 HSM으로 가져옵니다. 명령과 출력은 다음과 같습니다. 다음 값을 사용자의 값으로 대체합니다.
-
<web_server_existing.key>
– 프라이빗 키가 포함된 파일 이름
-
<web_server_imported_key>
– 가져온 프라이빗 키의 레이블
-
<wrapping_key_handle>
– 이전 명령에서 생성된 래핑 키 처리 이전 예제에서 래핑 키 핸들은 6입니다.
Command:
importPrivateKey -f <web_server_existing.key>
-l <web_server_imported_key>
-w <wrapping_key_handle>
BER encoded key length is 1219
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS
Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS
Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS
Private Key Unwrapped. Key Handle: 8
Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
-
다음 명령을 실행하여 가짜 PEM 형식의 프라이빗 키를 내보내고 파일에 저장합니다. 다음 값을 사용자의 값으로 대체합니다.
Command:
getCaviumPrivKey -k <private_key_handle>
-out <web_server_fake_PEM.key>
-
다음 명령을 실행하여 key_mgmt_util을 중지합니다.
Command:
exit
이 단계들을 완료한 후 3단계: 웹 서버 구성하기로 이동합니다.
이전 단계에서 생성한 HTTPS 인증서와 이에 해당되는 가짜 PEM 프라이빗 키를 사용하려면 웹 서버 소프트웨어의 구성을 업데이트하십시오. 시작하기 전에 기존 인증서와 키를 백업해야 한다는 점을 잊지 마십시오. 그러면 AWS CloudHSM이 지원되는 SSL/TLS 오프로드의 Linux 웹 서버 소프트웨어 설정이 완료됩니다.
다음 섹션 중 하나에 있는 단계를 완료합니다.
NGINX 웹 서버를 구성합니다
이 섹션을 사용하여 지원되는 플랫폼에서 NGINX를 구성합니다.
NGINX용 웹 서버 구성을 업데이트하려면
-
클라이언트 인스턴스에 연결합니다.
-
다음 명령을 실행하여 웹 서버 인증서 및 가짜 PEM 프라이빗 키에 필요한 디렉터리를 생성합니다.
$
sudo mkdir -p /etc/pki/nginx/private
-
다음 명령을 실행하여 웹 서버 인증서를 필요한 위치에 복사합니다. <web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
$
sudo cp <web_server.crt>
/etc/pki/nginx/server.crt
-
다음 명령을 실행하여 가짜 PEM 프라이빗 키를 필요한 위치에 복사합니다. <web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
$
sudo cp <web_server_fake_PEM.key>
/etc/pki/nginx/private/server.key
-
다음 명령을 실행하여 nginx라는 이름의 사용자가 파일을 읽을 수 있도록 파일 소유권을 변경합니다.
$
sudo chown nginx /etc/pki/nginx/server.crt /etc/pki/nginx/private/server.key
-
다음 명령을 실행하여 /etc/nginx/nginx.conf
파일을 백업합니다.
$
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
-
NGINX 구성을 업데이트합니다.
각 클러스터는 모든 NGINX 웹 서버에서 최대 1000개의 NGINX 작업자 프로세스를 지원할 수 있습니다.
- Amazon Linux
-
텍스트 편집기를 사용하여 /etc/nginx/nginx.conf
파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다. 파일의 맨 위에 다음 행을 추가합니다.
그런 다음 파일의 TLS 섹션에 다음을 추가합니다.
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA";
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- Amazon Linux 2
-
텍스트 편집기를 사용하여 /etc/nginx/nginx.conf
파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다. 파일의 맨 위에 다음 행을 추가합니다.
그런 다음 파일의 TLS 섹션에 다음을 추가합니다.
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA";
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- CentOS 7
-
텍스트 편집기를 사용하여 /etc/nginx/nginx.conf
파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다. 파일의 맨 위에 다음 행을 추가합니다.
그런 다음 파일의 TLS 섹션에 다음을 추가합니다.
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA";
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- CentOS 8
-
텍스트 편집기를 사용하여 /etc/nginx/nginx.conf
파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다. 파일의 맨 위에 다음 행을 추가합니다.
ssl_engine cloudhsm;
env CLOUDHSM_PIN;
그런 다음 파일의 TLS 섹션에 다음을 추가합니다.
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA";
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- Red Hat 7
-
텍스트 편집기를 사용하여 /etc/nginx/nginx.conf
파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다. 파일의 맨 위에 다음 행을 추가합니다.
그런 다음 파일의 TLS 섹션에 다음을 추가합니다.
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA";
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- Red Hat 8
-
텍스트 편집기를 사용하여 /etc/nginx/nginx.conf
파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다. 파일의 맨 위에 다음 행을 추가합니다.
ssl_engine cloudhsm;
env CLOUDHSM_PIN;
그런 다음 파일의 TLS 섹션에 다음을 추가합니다.
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA";
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- Ubuntu 16.04 LTS
-
텍스트 편집기를 사용하여 /etc/nginx/nginx.conf
파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다. 파일의 맨 위에 다음 행을 추가합니다.
ssl_engine cloudhsm;
env n3fips_password;
그런 다음 파일의 TLS 섹션에 다음을 추가합니다.
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA";
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- Ubuntu 18.04 LTS
-
텍스트 편집기를 사용하여 /etc/nginx/nginx.conf
파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다. 파일의 맨 위에 다음 행을 추가합니다.
ssl_engine cloudhsm;
env CLOUDHSM_PIN;
그런 다음 파일의 TLS 섹션에 다음을 추가합니다.
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA";
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- Ubuntu 20.04 LTS
-
텍스트 편집기를 사용하여 /etc/nginx/nginx.conf
파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다. 파일의 맨 위에 다음 행을 추가합니다.
ssl_engine cloudhsm;
env CLOUDHSM_PIN;
그런 다음 파일의 TLS 섹션에 다음을 추가합니다.
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt";
ssl_certificate_key "/etc/pki/nginx/private/server.key";
# It is *strongly* recommended to generate unique DH parameters
# Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048
#ssl_dhparam "/etc/pki/nginx/dhparams.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA";
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
파일을 저장합니다.
-
systemd
구성 파일을 백업한 후, EnvironmentFile
경로를 설정합니다.
- Amazon Linux
-
작업이 필요하지 않습니다.
- Amazon Linux 2
-
-
nginx.service
파일을 백업합니다.
$
sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
-
텍스트 편집기에서 /lib/systemd/system/nginx.service
파일을 연 후, [서비스] 섹션 아래에 다음 경로를 추가합니다.
EnvironmentFile=/etc/sysconfig/nginx
- CentOS 7
-
작업이 필요하지 않습니다.
- CentOS 8
-
-
nginx.service
파일을 백업합니다.
$
sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
-
텍스트 편집기에서 /lib/systemd/system/nginx.service
파일을 연 후, [서비스] 섹션 아래에 다음 경로를 추가합니다.
EnvironmentFile=/etc/sysconfig/nginx
- Red Hat 7
-
작업이 필요하지 않습니다.
- Red Hat 8
-
-
nginx.service
파일을 백업합니다.
$
sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
-
텍스트 편집기에서 /lib/systemd/system/nginx.service
파일을 연 후, [서비스] 섹션 아래에 다음 경로를 추가합니다.
EnvironmentFile=/etc/sysconfig/nginx
- Ubuntu 16.04
-
-
nginx.service
파일을 백업합니다.
$
sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
-
텍스트 편집기에서 /lib/systemd/system/nginx.service
파일을 연 후, [서비스] 섹션 아래에 다음 경로를 추가합니다.
EnvironmentFile=/etc/sysconfig/nginx
- Ubuntu 18.04
-
-
nginx.service
파일을 백업합니다.
$
sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
-
텍스트 편집기에서 /lib/systemd/system/nginx.service
파일을 연 후, [서비스] 섹션 아래에 다음 경로를 추가합니다.
EnvironmentFile=/etc/sysconfig/nginx
- Ubuntu 20.04 LTS
-
-
nginx.service
파일을 백업합니다.
$
sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
-
텍스트 편집기에서 /lib/systemd/system/nginx.service
파일을 연 후, [서비스] 섹션 아래에 다음 경로를 추가합니다.
EnvironmentFile=/etc/sysconfig/nginx
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
/etc/sysconfig/nginx
파일이 있는지 여부를 확인한 후, 다음 중 하나를 수행합니다.
-
파일이 있는 경우 다음 명령을 실행하여 파일을 백업합니다.
$
sudo cp /etc/sysconfig/nginx /etc/sysconfig/nginx.backup
-
파일이 없는 경우 텍스트 편집기를 연 후 /etc/sysconfig/
폴더에 nginx
라는 파일을 생성합니다.
-
NGINX 환경을 구성합니다.
클라이언트 SDK 5는 CU의 자격 증명을 저장하기 위한 CLOUDHSM_PIN
환경 변수를 도입합니다.
- Amazon Linux
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
파일을 저장합니다.
- Amazon Linux 2
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
파일을 저장합니다.
- CentOS 7
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
파일을 저장합니다.
- CentOS 8
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
CLOUDHSM_PIN=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
파일을 저장합니다.
- Red Hat 7
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
파일을 저장합니다.
- Red Hat 8
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
CLOUDHSM_PIN=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
파일을 저장합니다.
- Ubuntu 16.04 LTS
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
n3fips_password=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
파일을 저장합니다.
- Ubuntu 18.04 LTS
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
CLOUDHSM_PIN=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
파일을 저장합니다.
- Ubuntu 20.04 LTS
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
CLOUDHSM_PIN=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
파일을 저장합니다.
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
NGINX 웹 서버를 시작합니다.
- Amazon Linux
-
텍스트 편집기에서 /etc/sysconfig/nginx
파일을 엽니다. 이때 Linux 루트 권한이 필요합니다. 암호화 사용자(Cryptography User) 자격 증명 추가하기:
$
sudo service nginx start
- Amazon Linux 2
-
실행 중인 NGINX 프로세스를 모두 중지하기
$
sudo systemctl stop nginx
systemd
구성을 다시 로드하여 최신 변경 사항 찾아내기
$
sudo systemctl daemon-reload
NGINX 프로세스 시작하기
$
sudo systemctl start nginx
- CentOS 7
-
실행 중인 NGINX 프로세스를 모두 중지하기
$
sudo systemctl stop nginx
systemd
구성을 다시 로드하여 최신 변경 사항 찾아내기
$
sudo systemctl daemon-reload
NGINX 프로세스 시작하기
$
sudo systemctl start nginx
- CentOS 8
-
실행 중인 NGINX 프로세스를 모두 중지하기
$
sudo systemctl stop nginx
systemd
구성을 다시 로드하여 최신 변경 사항 찾아내기
$
sudo systemctl daemon-reload
NGINX 프로세스 시작하기
$
sudo systemctl start nginx
- Red Hat 7
-
실행 중인 NGINX 프로세스를 모두 중지하기
$
sudo systemctl stop nginx
systemd
구성을 다시 로드하여 최신 변경 사항 찾아내기
$
sudo systemctl daemon-reload
NGINX 프로세스 시작하기
$
sudo systemctl start nginx
- Red Hat 8
-
실행 중인 NGINX 프로세스를 모두 중지하기
$
sudo systemctl stop nginx
systemd
구성을 다시 로드하여 최신 변경 사항 찾아내기
$
sudo systemctl daemon-reload
NGINX 프로세스 시작하기
$
sudo systemctl start nginx
- Ubuntu 16.04 LTS
-
실행 중인 NGINX 프로세스를 모두 중지하기
$
sudo systemctl stop nginx
systemd
구성을 다시 로드하여 최신 변경 사항 찾아내기
$
sudo systemctl daemon-reload
NGINX 프로세스 시작하기
$
sudo systemctl start nginx
- Ubuntu 18.04 LTS
-
실행 중인 NGINX 프로세스를 모두 중지하기
$
sudo systemctl stop nginx
systemd
구성을 다시 로드하여 최신 변경 사항 찾아내기
$
sudo systemctl daemon-reload
NGINX 프로세스 시작하기
$
sudo systemctl start nginx
- Ubuntu 20.04 LTS
-
실행 중인 NGINX 프로세스를 모두 중지하기
$
sudo systemctl stop nginx
systemd
구성을 다시 로드하여 최신 변경 사항 찾아내기
$
sudo systemctl daemon-reload
NGINX 프로세스 시작하기
$
sudo systemctl start nginx
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
(선택 사항) 시작 시 NGINX를 시작하도록 플랫폼을 구성합니다.
- Amazon Linux
-
$
sudo chkconfig nginx on
- Amazon Linux 2
-
$
sudo systemctl enable nginx
- CentOS 7
-
작업이 필요하지 않습니다.
- CentOS 8
-
$
sudo systemctl enable nginx
- Red Hat 7
-
작업이 필요하지 않습니다.
- Red Hat 8
-
$
sudo systemctl enable nginx
- Ubuntu 16.04 LTS
-
$
sudo systemctl enable nginx
- Ubuntu 18.04 LTS
-
$
sudo systemctl enable nginx
- Ubuntu 20.04 LTS
-
$
sudo systemctl enable nginx
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
웹 서버 구성을 업데이트한 후에 4단계: HTTPS 트래픽 활성화 및 인증서 확인하기 단원으로 이동합니다.
Apache 웹 서버 구성하기
이 섹션을 사용하여 지원되는 플랫폼에서 Apache를 구성합니다.
Apache용 웹 서버 구성을 업데이트하려면
-
Amazon EC2 클라이언트 인스턴스에 연결합니다.
-
플랫폼의 인증서 및 프라이빗 키의 기본 위치를 정의하십시오.
- Amazon Linux
-
/etc/httpd/conf.d/ssl.conf
파일에 다음 값이 존재하는지 확인하십시오.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
- Amazon Linux 2
-
/etc/httpd/conf.d/ssl.conf
파일에 다음 값이 존재하는지 확인하십시오.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
- CentOS 7
-
/etc/httpd/conf.d/ssl.conf
파일에 다음 값이 존재하는지 확인하십시오.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
- CentOS 8
-
/etc/httpd/conf.d/ssl.conf
파일에 다음 값이 존재하는지 확인하십시오.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
- Red Hat 7
-
/etc/httpd/conf.d/ssl.conf
파일에 다음 값이 존재하는지 확인하십시오.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
- Red Hat 8
-
/etc/httpd/conf.d/ssl.conf
파일에 다음 값이 존재하는지 확인하십시오.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
- Ubuntu 16.04 LTS
-
/etc/apache2/sites-available/default-ssl.conf
파일에 다음 값이 존재하는지 확인하십시오.
SSLCertificateFile /etc/ssl/certs/localhost.crt
SSLCertificateKeyFile /etc/ssl/private/localhost.key
- Ubuntu 18.04 LTS
-
/etc/apache2/sites-available/default-ssl.conf
파일에 다음 값이 존재하는지 확인하십시오.
SSLCertificateFile /etc/ssl/certs/localhost.crt
SSLCertificateKeyFile /etc/ssl/private/localhost.key
- Ubuntu 20.04 LTS
-
/etc/apache2/sites-available/default-ssl.conf
파일에 다음 값이 존재하는지 확인하십시오.
SSLCertificateFile /etc/ssl/certs/localhost.crt
SSLCertificateKeyFile /etc/ssl/private/localhost.key
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
웹 서버 인증서를 플랫폼의 필수 위치에 복사하십시오.
- Amazon Linux
-
$
sudo cp <web_server.crt>
/etc/pki/tls/certs/localhost.crt
<web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
- Amazon Linux 2
-
$
sudo cp <web_server.crt>
/etc/pki/tls/certs/localhost.crt
<web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
- CentOS 7
-
$
sudo cp <web_server.crt>
/etc/pki/tls/certs/localhost.crt
<web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
- CentOS 8
-
$
sudo cp <web_server.crt>
/etc/pki/tls/certs/localhost.crt
<web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
- Red Hat 7
-
$
sudo cp <web_server.crt>
/etc/pki/tls/certs/localhost.crt
<web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
- Red Hat 8
-
$
sudo cp <web_server.crt>
/etc/pki/tls/certs/localhost.crt
<web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
- Ubuntu 16.04 LTS
-
$
sudo cp <web_server.crt>
/etc/ssl/certs/localhost.crt
<web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
- Ubuntu 18.04 LTS
-
$
sudo cp <web_server.crt>
/etc/ssl/certs/localhost.crt
<web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
- Ubuntu 20.04 LTS
-
$
sudo cp <web_server.crt>
/etc/ssl/certs/localhost.crt
<web_server.crt>
를 웹 서버 인증서 이름으로 바꿉니다.
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
가짜 PEM 프라이빗 키를 플랫폼에 필요한 위치로 복사합니다.
- Amazon Linux
-
$
sudo cp <web_server_fake_PEM.key>
/etc/pki/tls/private/localhost.key
<web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
- Amazon Linux 2
-
$
sudo cp <web_server_fake_PEM.key>
/etc/pki/tls/private/localhost.key
<web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
- CentOS 7
-
$
sudo cp <web_server_fake_PEM.key>
/etc/pki/tls/private/localhost.key
<web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
- CentOS 8
-
$
sudo cp <web_server_fake_PEM.key>
/etc/pki/tls/private/localhost.key
<web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
- Red Hat 7
-
$
sudo cp <web_server_fake_PEM.key>
/etc/pki/tls/private/localhost.key
<web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
- Red Hat 8
-
$
sudo cp <web_server_fake_PEM.key>
/etc/pki/tls/private/localhost.key
<web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
- Ubuntu 16.04 LTS
-
$
sudo cp <web_server_fake_PEM.key>
/etc/ssl/private/localhost.key
<web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
- Ubuntu 18.04 LTS
-
$
sudo cp <web_server_fake_PEM.key>
/etc/ssl/private/localhost.key
<web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
- Ubuntu 20.04 LTS
-
$
sudo cp <web_server_fake_PEM.key>
/etc/ssl/private/localhost.key
<web_server_fake_PEM.key>
를 가짜 PEM 프라이빗 키가 포함된 파일 이름으로 바꿉니다.
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
플랫폼에서 필요한 경우 이러한 파일의 소유권을 변경하십시오.
- Amazon Linux
-
$
sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key
apache라는 이름의 사용자에게 읽기 권한을 제공합니다.
- Amazon Linux 2
-
$
sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key
apache라는 이름의 사용자에게 읽기 권한을 제공합니다.
- CentOS 7
-
$
sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key
apache라는 이름의 사용자에게 읽기 권한을 제공합니다.
- CentOS 8
-
$
sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key
apache라는 이름의 사용자에게 읽기 권한을 제공합니다.
- Red Hat 7
-
$
sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key
apache라는 이름의 사용자에게 읽기 권한을 제공합니다.
- Red Hat 8
-
$
sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key
apache라는 이름의 사용자에게 읽기 권한을 제공합니다.
- Ubuntu 16.04 LTS
-
작업이 필요하지 않습니다.
- Ubuntu 18.04 LTS
-
작업이 필요하지 않습니다.
- Ubuntu 20.04 LTS
-
작업이 필요하지 않습니다.
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
플랫폼의 Apache 지시어를 구성합니다.
- Amazon Linux
-
이 플랫폼의 SSL 파일을 찾으십시오.
/etc/httpd/conf.d/ssl.conf
이 파일에는 서버 실행 방법을 정의하는 Apache 지시어가 들어 있습니다. 왼쪽에 지시어가 표시되고 그 뒤에 값이 표시됩니다. 텍스트 편집기를 사용하여 이 파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다.
다음 지시어를 다음 값으로 업데이트하거나 입력하십시오.
SSLCryptoDevice cloudhsm
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA
파일을 저장합니다.
- Amazon Linux 2
-
이 플랫폼의 SSL 파일을 찾으십시오.
/etc/httpd/conf.d/ssl.conf
이 파일에는 서버 실행 방법을 정의하는 Apache 지시어가 들어 있습니다. 왼쪽에 지시어가 표시되고 그 뒤에 값이 표시됩니다. 텍스트 편집기를 사용하여 이 파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다.
다음 지시어를 다음 값으로 업데이트하거나 입력하십시오.
SSLCryptoDevice cloudhsm
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA
파일을 저장합니다.
- CentOS 7
-
이 플랫폼의 SSL 파일을 찾으십시오.
/etc/httpd/conf.d/ssl.conf
이 파일에는 서버 실행 방법을 정의하는 Apache 지시어가 들어 있습니다. 왼쪽에 지시어가 표시되고 그 뒤에 값이 표시됩니다. 텍스트 편집기를 사용하여 이 파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다.
다음 지시어를 다음 값으로 업데이트하거나 입력하십시오.
SSLCryptoDevice cloudhsm
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA
파일을 저장합니다.
- CentOS 8
-
이 플랫폼의 SSL 파일을 찾으십시오.
/etc/httpd/conf.d/ssl.conf
이 파일에는 서버 실행 방법을 정의하는 Apache 지시어가 들어 있습니다. 왼쪽에 지시어가 표시되고 그 뒤에 값이 표시됩니다. 텍스트 편집기를 사용하여 이 파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다.
다음 지시어를 다음 값으로 업데이트하거나 입력하십시오.
SSLCryptoDevice cloudhsm
SSLProtocol TLSv1.2 TLSv1.3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA
SSLProxyCipherSuite HIGH:!aNULL
파일을 저장합니다.
- Red Hat 7
-
이 플랫폼의 SSL 파일을 찾으십시오.
/etc/httpd/conf.d/ssl.conf
이 파일에는 서버 실행 방법을 정의하는 Apache 지시어가 들어 있습니다. 왼쪽에 지시어가 표시되고 그 뒤에 값이 표시됩니다. 텍스트 편집기를 사용하여 이 파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다.
다음 지시어를 다음 값으로 업데이트하거나 입력하십시오.
SSLCryptoDevice cloudhsm
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA
파일을 저장합니다.
- Red Hat 8
-
이 플랫폼의 SSL 파일을 찾으십시오.
/etc/httpd/conf.d/ssl.conf
이 파일에는 서버 실행 방법을 정의하는 Apache 지시어가 들어 있습니다. 왼쪽에 지시어가 표시되고 그 뒤에 값이 표시됩니다. 텍스트 편집기를 사용하여 이 파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다.
다음 지시어를 다음 값으로 업데이트하거나 입력하십시오.
SSLCryptoDevice cloudhsm
SSLProtocol TLSv1.2 TLSv1.3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA
SSLProxyCipherSuite HIGH:!aNULL
파일을 저장합니다.
- Ubuntu 16.04 LTS
-
이 플랫폼의 SSL 파일을 찾으십시오.
/etc/apache2/mods-available/ssl.conf
이 파일에는 서버 실행 방법을 정의하는 Apache 지시어가 들어 있습니다. 왼쪽에 지시어가 표시되고 그 뒤에 값이 표시됩니다. 텍스트 편집기를 사용하여 이 파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다.
다음 지시어를 다음 값으로 업데이트하거나 입력하십시오.
SSLCryptoDevice cloudhsm
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA
파일을 저장합니다.
SSL 모듈 및 기본 SSL 사이트 구성을 활성화합니다.
$
sudo a2enmod ssl
$
sudo a2ensite default-ssl
- Ubuntu 18.04 LTS
-
이 플랫폼의 SSL 파일을 찾으십시오.
/etc/apache2/mods-available/ssl.conf
이 파일에는 서버 실행 방법을 정의하는 Apache 지시어가 들어 있습니다. 왼쪽에 지시어가 표시되고 그 뒤에 값이 표시됩니다. 텍스트 편집기를 사용하여 이 파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다.
다음 지시어를 다음 값으로 업데이트하거나 입력하십시오.
SSLCryptoDevice cloudhsm
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA
SSLProtocol TLSv1.2 TLSv1.3
파일을 저장합니다.
SSL 모듈 및 기본 SSL 사이트 구성을 활성화합니다.
$
sudo a2enmod ssl
$
sudo a2ensite default-ssl
- Ubuntu 20.04 LTS
-
이 플랫폼의 SSL 파일을 찾으십시오.
/etc/apache2/mods-available/ssl.conf
이 파일에는 서버 실행 방법을 정의하는 Apache 지시어가 들어 있습니다. 왼쪽에 지시어가 표시되고 그 뒤에 값이 표시됩니다. 텍스트 편집기를 사용하여 이 파일을 편집합니다. 이때 Linux 루트 권한이 필요합니다.
다음 지시어를 다음 값으로 업데이트하거나 입력하십시오.
SSLCryptoDevice cloudhsm
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA
SSLProtocol TLSv1.2 TLSv1.3
파일을 저장합니다.
SSL 모듈 및 기본 SSL 사이트 구성을 활성화합니다.
$
sudo a2enmod ssl
$
sudo a2ensite default-ssl
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
플랫폼의 환경 값 파일을 구성합니다.
- Amazon Linux
-
작업이 필요하지 않습니다. /etc/sysconfig/httpd
에 환경 값이 입력됩니다.
- Amazon Linux 2
-
httpd 서비스 파일을 엽니다.
/lib/systemd/system/httpd.service
[Service]
섹션 아래에 다음을 추가합니다.
EnvironmentFile=/etc/sysconfig/httpd
- CentOS 7
-
httpd 서비스 파일을 엽니다.
/lib/systemd/system/httpd.service
[Service]
섹션 아래에 다음을 추가합니다.
EnvironmentFile=/etc/sysconfig/httpd
- CentOS 8
-
httpd 서비스 파일을 엽니다.
/lib/systemd/system/httpd.service
[Service]
섹션 아래에 다음을 추가합니다.
EnvironmentFile=/etc/sysconfig/httpd
- Red Hat 7
-
httpd 서비스 파일을 엽니다.
/lib/systemd/system/httpd.service
[Service]
섹션 아래에 다음을 추가합니다.
EnvironmentFile=/etc/sysconfig/httpd
- Red Hat 8
-
httpd 서비스 파일을 엽니다.
/lib/systemd/system/httpd.service
[Service]
섹션 아래에 다음을 추가합니다.
EnvironmentFile=/etc/sysconfig/httpd
- Ubuntu 16.04 LTS
-
작업이 필요하지 않습니다. /etc/sysconfig/httpd
에 환경 값이 입력됩니다.
- Ubuntu 18.04 LTS
-
작업이 필요하지 않습니다. /etc/sysconfig/httpd
에 환경 값이 입력됩니다.
- Ubuntu 20.04 LTS
-
작업이 필요하지 않습니다. /etc/sysconfig/httpd
에 환경 값이 입력됩니다.
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
플랫폼의 환경 변수를 저장하는 파일에서 암호화 사용자(cryptographic user)의 자격 증명이 포함된 환경 변수를 설정합니다.
- Amazon Linux
-
텍스트 편집기를 사용하여 /etc/sysconfig/httpd
을 편집합니다.
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
- Amazon Linux 2
-
텍스트 편집기를 사용하여 /etc/sysconfig/httpd
을 편집합니다.
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
- CentOS 7
-
텍스트 편집기를 사용하여 /etc/sysconfig/httpd
을 편집합니다.
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
- CentOS 8
-
텍스트 편집기를 사용하여 /etc/sysconfig/httpd
을 편집합니다.
CLOUDHSM_PIN=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
- Red Hat 7
-
텍스트 편집기를 사용하여 /etc/sysconfig/httpd
을 편집합니다.
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
- Red Hat 8
-
텍스트 편집기를 사용하여 /etc/sysconfig/httpd
을 편집합니다.
CLOUDHSM_PIN=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
클라이언트 SDK 5는 CU의 자격 증명을 저장하기 위한 CLOUDHSM_PIN
환경 변수를 도입합니다.
- Ubuntu 16.04 LTS
-
텍스트 편집기를 사용하여 /etc/apache2/envvars
을 편집합니다.
export n3fips_password=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
- Ubuntu 18.04 LTS
-
텍스트 편집기를 사용하여 /etc/apache2/envvars
을 편집합니다.
export CLOUDHSM_PIN=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
클라이언트 SDK 5는 CU의 자격 증명을 저장하기 위한 CLOUDHSM_PIN
환경 변수를 도입합니다. 클라이언트 SDK 3에서 CU 자격 증명을 n3fips_password
환경 변수에 저장했습니다. 클라이언트 SDK 5는 두 환경 변수를 모두 지원하지만 CLOUDHSM_PIN
을 사용하는 것이 좋습니다.
- Ubuntu 20.04 LTS
-
텍스트 편집기를 사용하여 /etc/apache2/envvars
을 편집합니다.
export CLOUDHSM_PIN=<CU user name>
:<password>
<CU 사용자 이름>
및 <암호>
를 암호화 사용자(Cryptography User) 자격 증명으로 바꿉니다.
클라이언트 SDK 5는 CU의 자격 증명을 저장하기 위한 CLOUDHSM_PIN
환경 변수를 도입합니다. 클라이언트 SDK 3에서 CU 자격 증명을 n3fips_password
환경 변수에 저장했습니다. 클라이언트 SDK 5는 두 환경 변수를 모두 지원하지만 CLOUDHSM_PIN
을 사용하는 것이 좋습니다.
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
Apache 웹 서버를 시작합니다.
- Amazon Linux
-
$
sudo systemctl daemon-reload
$
sudo service httpd start
- Amazon Linux 2
-
$
sudo systemctl daemon-reload
$
sudo service httpd start
- CentOS 7
-
$
sudo systemctl daemon-reload
$
sudo service httpd start
- CentOS 8
-
$
sudo systemctl daemon-reload
$
sudo service httpd start
- Red Hat 7
-
$
sudo systemctl daemon-reload
$
sudo service httpd start
- Red Hat 8
-
$
sudo systemctl daemon-reload
$
sudo service httpd start
- Ubuntu 16.04 LTS
-
$
sudo service apache2 start
- Ubuntu 18.04 LTS
-
$
sudo service apache2 start
- Ubuntu 20.04 LTS
-
$
sudo service apache2 start
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
-
(선택 사항) 시작 시 Apache를 시작하도록 플랫폼을 구성합니다.
- Amazon Linux
-
$
sudo chkconfig httpd on
- Amazon Linux 2
-
$
sudo chkconfig httpd on
- CentOS 7
-
$
sudo chkconfig httpd on
- CentOS 8
-
$
systemctl enable httpd
- Red Hat 7
-
$
sudo chkconfig httpd on
- Red Hat 8
-
$
systemctl enable httpd
- Ubuntu 16.04 LTS
-
$
sudo systemctl enable apache2
- Ubuntu 18.04 LTS
-
$
sudo systemctl enable apache2
- Ubuntu 20.04 LTS
-
$
sudo systemctl enable apache2
- Ubuntu 22.04 LTS
-
OpenSSL Dynamic Engine에 대한 지원은 아직 제공되지 않습니다.
웹 서버 구성을 업데이트한 후에 4단계: HTTPS 트래픽 활성화 및 인증서 확인하기 단원으로 이동합니다.
4단계: HTTPS 트래픽 활성화 및 인증서 확인하기
AWS CloudHSM을 사용하는 SSL/TLS 오프로드에 맞게 웹 서버를 구성한 후, 인바운드 HTTPS 트래픽을 허용하는 보안 그룹에 웹 서버 인스턴스를 추가합니다. 이렇게 하면 웹 브라우저와 같은 클라이언트가 웹 서버와 HTTPS 연결을 설정할 수 있습니다. 그런 다음 웹 서버에 HTTPS를 연결하고 이 연결에서 AWS CloudHSM을 사용하는 SSL/TLS 오프로드에 맞게 구성한 인증서를 사용하고 있는지 확인합니다.
인바운드 HTTPS 연결 활성화
클라이언트(예: 웹 서버)에서 웹 서버에 연결하려면 인바운드 HTTPS 연결을 허용하는 보안 그룹을 생성합니다. 구체적으로 포트 443에서 인바운드 TCP 연결을 허용해야 합니다. 이 보안 그룹을 웹 서버에 할당합니다.
HTTPS용 보안 그룹을 생성하여 웹 서버에 할당하려면
-
https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 보안 그룹을 선택합니다.
-
보안 그룹 생성을 선택합니다.
-
보안 그룹 생성에서 다음을 수행합니다.
-
보안 그룹 이름에 생성하려는 보안 그룹의 이름을 입력합니다.
-
(선택 사항) 생성하려는 보안 그룹에 대한 설명을 입력합니다.
-
웹 서버 Amazon EC2 인스턴스가 포함된 VPC를 VPC로 선택합니다.
-
규칙 추가를 선택합니다.
-
드롭다운 창에서 HTTPS를 유형으로 선택합니다.
-
소스에 소스 위치를 입력합니다.
-
보안 그룹 생성을 선택합니다.
-
탐색 창에서 인스턴스(Instances)를 선택합니다.
-
웹 서버 인스턴스 옆에 있는 확인란을 선택합니다.
-
페이지 상단의 작업 드롭다운 메뉴를 선택합니다. 보안을 선택한 다음 보안 그룹 변경을 선택합니다.
-
연결된 보안 그룹에서 검색 상자를 선택하고 HTTPS용으로 생성한 보안 그룹을 선택합니다. 그런 다음 보안 그룹 추가를 선택합니다.
-
저장을 선택합니다.
HTTPS가 사용자가 구성한 인증서를 사용하는지 확인
웹 서버를 보안 그룹에 추가한 후 SSL/TLS 오프로드가 자체 서명된 인증서를 사용하고 있는지 확인할 수 있습니다. 웹 브라우저 또는 OpenSSL s_client와 같은 도구를 사용하여 이 작업을 수행할 수 있습니다.
웹 브라우저를 사용하여 SSL/TLS 오프로드를 확인하려면
-
웹 브라우저를 사용하여 서버의 퍼블릭 DNS 이름 또는 IP 주소를 사용해 웹 서버에 연결합니다. 주소 표시줄의 URL이 https://로 시작하는지 확인합니다. 예: https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/
.
Amazon Route 53과 같은 DNS 서비스를 사용하여 웹사이트의 도메인 이름(예: https://www.example.com/)을 웹 서버로 라우팅할 수 있습니다. 자세한 내용은 Amazon Route 53 개발자 안내서 또는 DNS 서비스 설명서의 Amazon EC2 인스턴스로 트래픽 라우팅을 참조하십시오.
-
웹 브라우저를 사용하여 웹 서버 인증서를 봅니다. 자세한 내용은 다음을 참조하세요.
다른 웹 브라우저에도 웹 서버 인증서를 보는 데 사용할 수 있는 유사한 기능이 있을 수 있습니다.
-
SSL/TLS 인증서가 웹 서버에서 사용하도록 구성한 것인지 확인합니다.
OpenSSL s_client를 사용하여 SSL/TLS 오프로드를 확인하려면
-
다음 OpenSSL 명령을 실행하여 HTTPS를 사용해 웹 서버에 연결합니다. <server name>
을 웹 서버의 퍼블릭 DNS 이름 또는 IP 주소로 바꿉니다.
openssl s_client -connect <server name>
:443
Amazon Route 53과 같은 DNS 서비스를 사용하여 웹사이트의 도메인 이름(예: https://www.example.com/)을 웹 서버로 라우팅할 수 있습니다. 자세한 내용은 Amazon Route 53 개발자 안내서 또는 DNS 서비스 설명서에서 Amazon EC2 인스턴스로의 라우팅 트래픽을 참조하십시오.
-
SSL/TLS 인증서가 웹 서버에서 사용하도록 구성한 것인지 확인합니다.
이제 웹 사이트가 HTTPS로 보안됩니다. 웹 서버에 대한 프라이빗 키는 AWS CloudHSM 클러스터의 HSM에 저장됩니다.
로드 밸런서를 추가하려면 AWS CloudHSM용 Elastic Load Balancing을 사용하여 로드 밸런서 추가(선택 사항) 섹션을 참조하십시오.