콘텐츠로 이동

OpenSSL로 자체 서명 인증서 생성

이 문서는 OpenSSL CLI를 통해 보안 연결 계층(SSL)을 활성화하는 데 사용할 자체 서명 인증서를 생성하는 방법을 소개합니다.

생성 단계

  • step1: 개인 키 생성, 개인 키는 암호화와 인증을 활성화하는 데 사용됩니다
openssl genrsa -out domain.key 2048
- `genrsa`: rsa 키 생성
- `out`: 개인 키 파일
- `2048`: 비트 수
  • step2: 인증서 서명 요청 생성, 인증서 서명 요청(CSR)은 인증서 서명을 요청하는 데 사용되며, 파일에는 공개 키 정보와 인증서 생성에 필요한 정보가 포함됩니다
openssl req -key domain.key -new -out domain.csr
- `req`: 인증서 요청 명령
- `key`: 개인 키 파일
- `new`: 새로 생성
- `out`: csr 파일

생성 과정은 다음과 같이 명령 상호작용 방식으로 진행됩니다:

Enter pass phrase for domain.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:AU
State or Province Name (full name) [Some-State]:stateA
Locality Name (eg, city) []:cityA
Organization Name (eg, company) [Internet Widgits Pty Ltd]:companyA
Organizational Unit Name (eg, section) []:sectionA
Common Name (e.g. server FQDN or YOUR name) []:domain
Email Address []:email@email.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

주의: Common Name 프롬프트에는 실제로 사용할 유효한 도메인 이름을 입력하세요

  • step3: 자체 서명 인증서 생성, 신뢰 체인 검사가 필요 없는 환경에서는 자체 서명 인증서를 직접 생성하여 인증서 서비스를 활성화할 수 있습니다
openssl x509 -signkey domain.key -in domain.csr -req -days 365 -out domain.crt
- `x509`: x509 규격의 인증서 생성
- `signkey`: 개인 키 파일
- `in`: 입력 csr 파일
- `days`: 유효 기간
- `out`: 인증서 파일
  • step4: 자체 서명 CA 생성

CA 루트 인증서와 개인 키 생성

openssl req -x509 -sha256 -days 1825 -newkey rsa:2048 -keyout rootCA.key -out rootCA.crt
- `req`: 인증서 요청 명령
- `x509`: x509 규격의 인증서 생성
- `sha256`: sha256 해시 알고리즘
- `days`: 만료 일수
- `newkey`: 새 key
- `rsa:2048`: rsa 암호화 알고리즘 2048비트
- `keyout`: 개인 키 파일
- `out`: 인증서 파일

루트 CA로 인증서 서명

ext 파일 생성

주의: domain 위치에는 실제로 사용할 유효한 도메인 이름을 입력하세요

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
subjectAltName = @alt_names
[alt_names]
DNS.1 = domain

루트 인증서와 개인 키로 인증서 발급

openssl x509 -req -CA rootCA.crt -CAkey rootCA.key -in domain.csr -out domain.crt -days 365 -CAcreateserial -extfile domain.ext

참고 문헌

문서 평가

이 페이지가 도움이 되었나요?