나의 잡다한 노트 및 메모
openssl 명령 본문
openssl req \
-new -newkey rsa:2048 \
-days 365 \
-nodes \
-x509 \
-keyout monitor.key \
-out monitor.crt \
-subj "/C=KR/ST=Daejeon/O=??/CN=localhost" \
-addext "subjectAltName = DNS:localhost"
- -x509: x.509 형식의 인증서를 직접 생성 (CSR을 만들고 다른 CA에 서명받는 대신, 바로 자체 서명)
- -keyout monitor.key: RSA 개인 키(private key) 파일 생성
- -out monitor.crt: 인증서(public cert) 출력
- -subj, -addext "subjectAltName = DNS:localhost": 인증서의 주체 및 SAN 필드를 지정
- -days 365: 인증서 유효 기간(1년)
- -nodes: 키에 패스프레이즈(암호) 설정하지 않음
이와 같이 -x509 로 생성한 인증서는 “자체 서명(self-signed)된 서버 인증서” 입니다.
즉, “Root CA를 따로 만들고 그걸로 서버 인증서를 서명” 하는 방식이 아니라,
서버 인증서를 발급하면서 스스로 서명하여 “하나의 .crt 파일”로 완성하는 것입니다.
따라서 이 스크립트는 “서버 인증서+개인 키(server.crt/server.key)를 self-signed로 생성” 하는 작업입니다.
- monitor.crt: self-signed 서버 인증서
- monitor.key: 그 인증서에 대응되는 개인 키
일반적으로 Root CA와 서버 인증서가 별도로 존재하는 경우와 달리, 여기서는 서버 인증서가 스스로 서명했기 때문에 따로 CA 체인이 없고, 브라우저나 다른 클라이언트에서 연결 시 “신뢰할 수 없다”는 경고가 뜨는 형태가 됩니다.