AWS에서 SSL을 사용하여 nginx 실행

AWS에서 SSL을 사용하여 nginx 실행

이 구성 스크립트를 사용하여 AWS에 nginx를 설치했습니다.

--prefix=/usr/local/nginx-1.16.1 --with-http_ssl_module --with-openssl=~/Downloads/openssl-1.1.1i --without-http_rewrite_module

AWS Certificate Manager(ACM)를 사용하여 내 URL(mydom.com)에 대한 인증서를 발급했으며 해당 상태는 다음과 같이 표시됩니다.발행 된그런 다음nginx.conf

server {
listen 443 ssl;
server_name localhost mydom.com;
ssl_certificate  /etc/ssl/certs/ca-bundle.crt;
ssl_certificate_key  /etc/trusted-key.key;
<truncated>
}

나는 파일을 선택했습니다: /etc/ssl/certs/ca-bundle.crt그리고 /etc/trusted-key.key그 파일이 Linux 파일 시스템에 있었고 nginx가 해당 파일과 함께 실행되는지 확인하기 위해 실행되었지만 실행되지 않았습니다. 그것은 다음을 제공했습니다 :

[emerg] cannot load certificate key "/etc/trusted-key.key": PEM_read_bio_PrivateKey() failes (SSL: error:0909006C:PEM routines:get_name: no start line:Expecting: ANY PRIVATE KEY)

물론 그것은 단지 시도일 뿐이었다. 그렇지 않으면 .crtACM에서 발행한 파일(있는 경우)을 사용해야 할 것 같습니다. 그런 다음 어떻게든 .key파일을 생성하여 Linux 파일 시스템의 /etc/nginx/ssl? 잘 모르겠습니다. 어떻게 진행해야 하나요?

참고: 나는 내 웹 서버에서 웹 애플리케이션을 실행한 경험이 있지만http나는 경험이 많지 않다.https

답변1

ACM 인증서는 주로 로드 밸런서인 AWS 관리형 서비스에서만 사용할 수 있습니다. 프라이빗 키에 액세스할 수 없으므로 EC2 인스턴스에 설치된 Nginx를 사용하여 ACM 인증서를 제시할 수 없습니다.

최선의 선택은 다음과 같습니다:

  • ALB에서 https를 종료하고 http를 통해 트래픽을 웹 서버로 전달합니다.
  • Let's Encrypt 인증서를 사용하세요. 이를 자동화하는 데 도움이 되는 다양한 소프트웨어 중에서 선택할 수 있습니다.

관련 정보