OpenSSL 사용 방법

leeway·2023년 12월 1일
0

주의: 본 포스트의 내용은 ChatGPT를 통해 얻은 정보를 기반으로 합니다. 부정확한 정보를 포함할 수 있어 실제 환경에서의 적용 시 추가적인 검증이 필요할 수 있습니다.


HTTPS로 API를 구성하는 과정은 여러 단계를 포함하며, 이를 위해 SSL/TLS 인증서가 필요합니다.

여기에는 두 가지 주요 방법이 있습니다:

  • 자체 서명된 인증서(Self-signed certificate)를 생성하는 방법과
  • 인증 기관(Certificate Authority, CA)에서 발급받은 인증서를 사용하는 방법입니다.

자체 서명된 인증서는 개발 및 테스트 목적에 적합하지만, 공개적으로 사용하기에는 신뢰도가 낮습니다. 이를 생성하려면 OpenSSL 같은 도구를 사용할 수 있습니다.




아래 명령은 자체 서명된 인증서(cert.pem)와 비밀 키(key.pem)를 생성합니다.

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
  • openssl req: OpenSSL의 요청(Request) 도구를 사용합니다. 이 도구는 인증서 서명 요청(Certificate Signing Request, CSR)이나 자체 서명된 인증서를 생성할 때 사용됩니다.

  • x509: 이 플래그는 자체 서명된 인증서를 생성하도록 지시합니다. 일반적으로 CSR을 생성할 때는 -x509 플래그가 없지만, 자체 서명된 인증서를 만들 때는 이 플래그를 사용합니다.

  • newkey rsa:4096: 새로운 RSA 키를 생성하고, 키의 크기를 4096 비트로 설정합니다. RSA는 현재 널리 사용되는 공개 키 암호화 방식 중 하나이며, 4096 비트는 충분한 보안을 제공하는 키 크기입니다.

  • keyout key.pem: 생성된 개인 키를 key.pem 파일에 저장합니다. 이 키는 인증서와 함께 사용되며 보안을 위해 안전하게 보관해야 합니다.

  • out cert.pem: 생성된 인증서를 cert.pem 파일에 저장합니다. 이 파일에는 공개 키와 인증서에 관한 정보가 포함됩니다.

  • days 365: 인증서의 유효 기간을 365일로 설정합니다. 이 기간이 지나면 인증서가 만료되어 더 이상 유효하지 않게 됩니다.




추가 정보: 비밀번호 없이 SSL/TLS 인증서 생성하기


앞서 언급한 방법은 인증서와 키를 생성할 때 비밀번호를 설정하는 과정을 포함합니다. 그러나 개발 환경에서는 때때로 비밀번호 없이 인증서와 키를 생성하고 사용하는 것이 편리할 수 있습니다. OpenSSL을 사용하여 비밀번호 없이 인증서와 키를 생성하는 방법은 다음과 같습니다:


  1. 개인 키 생성: 먼저, 비밀번호 없이 RSA 개인 키를 생성합니다.
openssl genrsa -out key.pem 4096

이 명령은 4096 비트 RSA 키를 생성하고 key.pem 파일에 저장합니다. 이 과정에서 비밀번호를 설정할 필요가 없습니다.


자체 서명된 인증서 생성: 생성된 개인 키를 사용하여 자체 서명된 인증서를 생성합니다.

openssl req -new -x509 -key key.pem -out cert.pem -days 365

이 명령은 key.pem에 저장된 키를 사용하여 자체 서명된 인증서(cert.pem)를 생성합니다. 생성 과정에서 일반적인 정보(국가, 조직 이름 등)를 입력하라는 프롬프트가 나타납니다.


이렇게 생성된 key.pem과 cert.pem 파일은 비밀번호 없이 사용할 수 있으므로, 스크립트나 자동화된 환경에서 편리하게 활용할 수 있습니다. 그러나 주의할 점은, 자체 서명된 인증서는 신뢰할 수 있는 인증 기관(CA)에 의해 서명되지 않았기 때문에, 일부 환경에서 보안 경고가 발생할 수 있다는 것입니다. 따라서, 개발 및 테스트 목적에 적합하지만, 실제 운영 환경에서는 신뢰할 수 있는 CA에 의해 서명된 인증서를 사용하는 것이 좋습니다.

profile
자연어처리 개발자

0개의 댓글