codestates / codestates/Memory-It
[Error Handling] 연결이 비공개로 설정되어 있지 않습니다(NET::ERR_CERT_COMMON_NAME_INVALID)
- Dominant language
- JavaScript
- Stars
- 1
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
### 어떤 에러인가요?
+ AWS를 이용한 HTTPS 배포를 구축하는 도중 SSL인증서와 괸련된 오류
### 에러 메시지
```
연결이 비공개로 설정되어 있지 않습니다
NET::ERR_CERT_COMMON_NAME_INVALID
```
### 에러 핸들링 방법
AWS를 이용한 https배포가 지속적으로 안되는 상황에서 이것저것 시도해보다가 찾은 에러.
ELB를 통해 https요청을 http로 변환해주는 과정이 있도록 구축했는데 https요청이 서버로 아예 가지를 않는 상황이었다.
해당오류는 SSL인증서와 관련된오류다. SSL인증서와 관련된 오류라는 말을 봤을 때 처음엔 말이 안된다고 생각했다.
분명 AWS에서 제공하는 서비스를 구축하는 과정에서 인증관련된 부분은 AWS자체적으로 강제하고있고 난 그것을 다 따랐다.
블로그도 찾아보고 공식문서도 찾아본 결과 해당오류는 조금 다양한 경우에서 발생할 수 있는데 공식문서에서는 이렇게 분류하고있다.
+ 인증서가 서버 이름에 대해 유효하지 않습니다.
+ 인증서가 만료되었습니다.
+ 웹 사이트의 SSL/TLS 인증서를 신뢰할 수 없습니다.
+ 연결이 완전히 보안되지 않았습니다.
**사실 첫 문장을 보고 바로 무릎을 탁 치며 득도해버렸다.**
CloudFront, ELB는 각각 ACM인증서(다른옵션도 존재)를 필요로하는데 그때 생성하는 인증서에 등록된 도메인과 cloudfront, elb 자체가 가지는 도메인명이 완전히 동일 해야한다는것이다. 지금까지는 인증서를 만들때 클라이언트 배포용 도메인으로만 적었었는데 그렇기 때문에 CloudFront는 https가 적용되는 반면 ELB로의 요청에 https가 아예 가질 않는것이였다.
구축했던 것들을 싹다 밀어버리고 새로 적용하니 https도메인 연결에 성공했다.
### 에러 핸들링을 위해 참고한 레퍼런스 링크
[레퍼런스 AWS공식 1](https://aws.amazon.com/ko/premiumsupport/knowledge-center/acm-certificate-error-https/)
[레퍼런스 AWS공식 2](https://aws.amazon.com/ko/premiumsupport/knowledge-center/cloudfront-domain-https/)
[레퍼런스 Blog 1](https://blog.bkfactory.co.kr/neterr_cert_common_name_invalid-%EC%98%A4%EB%A5%98-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EB%AC%B8%EC%A0%9C/)
[레퍼런스 Blog 2](https://yunzema.tistory.com/m/264)
[레퍼런스 Blog 3](https://velog.io/@jonmad/AWS%EB%A1%9C-Https-ELB-%EC%84%A4%EC%A0%95)
[레퍼런스 Blog 4](https://happiestmemories.tistory.com/m/48)
[레퍼런스 Blog 5](https://perfectacle.github.io/2017/10/05/https-with-elb/)
[레퍼런스 Blog 6](https://hi-dot.tistory.com/22)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.