티스토리 뷰

Cloud Service/ACM

SSL 인증서 AWS IAM 에 업로드 및 적용

친절한☆ 돌이☆ 2018.12.09 14:41

SSL 인증서 AWS IAM 에 업로드 및 적용


인증서.

그것은 HTTPS 프로토콜을 사용한 암호화통신에 있어서 필수저인 것일 수 있다.

AWS에서 인증서를 발급할수도 있고, 공인업체에서 발급받은 인증서를 AWS에 등록할수도 있다.


인증서 설명에 대한 부분은 본 과정에서 생략하고자 한다.

과거에 작성했던 글들중에 충분한 설명이 있을거로 알고..ㅎ


-관련글-

[돌이의 서버이야기☆/Web Application Server] - OPENSSL 명령어를 이용한 암호화 알고리즘(SSL,TLS) 방식 확인하기

[돌이의 서버이야기☆/OS Relationship] - Java CA 인증서(cacerts) 저장소에 CA(인증 기관) 인증서를 추가하는 방법

[돌이의 서버이야기☆/Network] - SSL 용어정리 및 공개키 개인키 그리고 인증서 원리와 통신방식

[돌이의 서버이야기☆/Network] - SSL 통신 확인하기 openssl - SHA256, TLS handshake 가능여부

[돌이의 서버이야기☆/Web Application Server] - WebSphere 인증서 갱신 문제 (동기화 오류) - 사전 갱신 UpdateSignerCerts.sh

[돌이의 서버이야기☆/Web Application Server] - Oracle Trust Store 인증서 삽입하기

[돌이의 클라우드이야기/AWS] - AWS ACM - SSL 인증서 생성하는 방법 (공인인증서)


어쩌면 마지막 글과 중복이 될 수 있지만,

본글은 IAM 에 공인인증서를 등록하는 방법이다.


(참고 - 공식 AWS 문서)


IAM SSL 인증서를 적용하기 위한 순서.
Access key ID
Secret access key
A(생략)
(생략)

아무튼 위 Access key id 와 Secret Access key 를 사용하여, AWS CLI 명령을 날릴 수 있는 기본 구성은 되어있다고 생각하고
아래와 같은 절차를 수행한다.

아래 화면은, file을 3번 사용하는 것을 확인할 수 있다.
즉, Body부분, chain 인증서부분, Private key 부분 ^^


aws iam list-server-certificates
인증서 목록 조회

aws iam get-server-certificate --server-certificate-name ExampleCertificate
인증서 가져오기

aws iam delete-server-certificate --server-certificate-name ExampleCertificate
인증서 삭제하기

aws iam upload-server-certificate --server-certificate-name ExampleCertificate -certificate-body file://Certificate.pem --certificate-chain file://CertificateChain.pem --private-key file://PrivateKey.pem

여기서 드는 궁금증
Q) pem 파일이 아니면 어떻게 해요~?
A) AWS에서는 기본 지원 확장자가 PEM 확장자이기 때문에 openssl을 통해 key 형태를 바꾸어 주어야 한다.


* openssl 을 통한 변환
openssl x509 -in Wildcard.thehandsome.com.crt -out Wildcard.thehandsome.com.pem -outform PEM



그밖에
openssl rsa -inform DER -in PrivateKey.der -outform PEM -out PrivateKey.pem
openssl rsa -in EncryptedPrivateKey.pem -out PrivateKey.pem
openssl pkcs12 -in CertificateBundle.p12 -out CertificateBundle.pem -nodes
openssl pkcs7 -in CertificateBundle.p7b -print_certs -out CertificateBundle.pem

1. Cloud Front

인증서 업로드

- aws iam update-server-certificate --server-certificate-name ExampleCertificate--new-server-certificate-name CloudFrontCertificate --new-path /cloudfront/
인증서 업데이트

========================================


위에서 업로드했던 것과 비슷해 보일 수 있지만
한가지 다르다
바로 --path 에서 경로명이 생겼다.
이곳에서는 Domain Name으로 경로를 구분함으로서 Cloudfront에서 해당 인증서가 보이게 구성할 수 있다.

aws iam upload-server-certificate --server-certificate-name CF_(생략)_20181001_new --certificate-body file://(생략).com.pem --private-key file://(생략).key.pem  --certificate-chain file://(생략).pem --path /cloudfront/(생략).cloudfront.net/


즉, 간소화해서 보기좋게 말하면 아래와 같은 명령어로 CloudFront에서 볼 수 있게 업로드를 진행해준다.
aws iam update-server-certificate --server-certificate-name CertificateName --new-path /cloudfront/DistributionName/

==============

aws iam update-server-certificate --server-certificate-name CF_(생략)_new --new-path /cloudfront/(생략).cloudfront.net/

aws iam delete-server-certificate --server-certificate-name CF_(생략)_20181001


2. ELB
ELB도 크게 다르지 않다.
즉, 여기설명은 명령어로 대신하며, 이해 안가는 부분은 언제든지 댓글환영합니다.
잘못된 부분도 언급 감사드려요 :)

* ACM방식의 경우
aws acm request-certificate --domain-name www.example.com
aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name my-load-balancer --load-balancer-port 443 --ssl-certificate-id arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

*IAM 방식의 경우
aws iam list-server-certificates
aws iam get-server-certificate --server-certificate-name my-new-certificate
(ARN) 가져오기
aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name my-load-balancer --load-balancer-port 443 --ssl-certificate-id arn:aws:iam::123456789012:server-certificate/my-new-certificate
================================================

aws iam upload-server-certificate --server-certificate-name thehandsome_20181001_new --certificate-body file://Wildcard.thehandsome.com.pem --private-key file://Wildcard.thehandsome.com.key.pem  --certificate-chain file://ALPHASSL_CA__SHA256__G2.pem

aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name Apache-public-ELB --load-balancer-port 443 --ssl-certificate-id arn:aws:iam::(생략):server-certificate/(생략)new






댓글
댓글쓰기 폼