일단 인증서 인증과정 및 SSL/TLS 과정을 살펴보도록 하자.
처음 개인키를 만들면 1:1 대응이 되는 공개키를 추출할 수 있다.
개인키로 CSR을 만들면 CSR과 개인키를 통해 인증서를 만드는데, 여기서 CSR이라는 것은 Certificate Signing Request의 약자로서 인증서 서명 요청이란 뜻이다. 즉, 인증서 발급을 위한 필요한 정보를 담고 있는 인증서 신청 형식 데이터이다. 여기 CSR에는 공개키와 인증서 도메인 정보 등이 있다.
그리고 self-signed라는 개념이 존재하는데 이거 찾느라 좀 애먹었다.
self-signed는 특정 서버가 자신의 인증서를 만들 때 self-signed라고 불리는게 아니라 CSR을 만들 때 사용되는 개인키와 인증서를 만들 때 사용되는 개인키가 동일해야지만 self-signed라고 불린다는 것이다. 즉, 어떤 서버가 특정 도메인으로 인증서를 만들 때 CA의 개인키를 이용한다면 그건 self-signed가 아닌것이다.
개인키는 openssl 라이브러리를 통해서 만들어 낼 수 있다. 또한 인증서 인증이나 csr, 인증서 등등을 만들 수 있는 툴이다.
openssl genrsa -des3 -out server.key 2048 # 개인키 생성
openssl req -new -key server.key -out server.csr # csr 생성
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt # 인증서 생성
인증서 만드는 내용은 여러 다른 블로그들이 있으니 참고해보시면 됩니다.
https://m.blog.naver.com/espeniel/221845133507
그리고 crt, cer, der, pem 이런 형식의 파일들이 많이 나올텐데 이 때는 당황하지 말고 pem으로 사용하고 싶다면
openssl x509 -in cert.crt -out cert.pem
이런식으로 pem으로 바꿔주면 잘 작동한다.
하지만 우리는 지금 let's encrypt를 통해 얻은 4가지 인증서들로 mongodb tls 인증을 완료하고 싶은 것이다.
그리고 ssl/tls handshake와 root ca인증방식을 알고싶으시면 아래 블로그를 참고하시면 되겠습니다.
- SSL/TLS Handshake
https://reakwon.tistory.com/106
- Root CA 인증방식
https://m.blog.naver.com/alice_k106/221468341565
'Mongodb' 카테고리의 다른 글
mongodb configuration (0) | 2021.11.12 |
---|---|
Mongodb Sharded Cluster (2) | 2021.11.12 |