인증서 개념정리와 발급하는 과정을 알아보도록 하겠습니다.
개인 인증서발급은 루트 인증서가 이미 발급되어 있는 상태에서 개인 인증서를 발급하는 과정을 보여주고 있습니다.
인증서 종류
- 루트 인증서 (Root Certificate): 신뢰의 최상위 계층에 있는 인증서입니다. 자체 서명되어 있으며, 다른 인증서의 유효성을 검증하는 데 사용됩니다.
- 중간 인증서 (Intermediate Certificate): 루트 인증서와 최종 사용자 인증서 사이에 위치합니다.
- 최종 사용자 인증서 (End-user Certificate): 실제 웹사이트나 서비스에서 사용되는 인증서입니다.
인증서 생성과정
.루트 인증서
- 개인키 생성
- 자체 서명된 인증서 생성
.사용자 인증서
- 개인키 생성 인증서
- 서명 요청(CSR) 생성
- 루트 인증서로 CSR에 서명하여 최종 인증서 생성
사용자 인증서 생성 예제
1. 개인키 생성
개인 키는 데이터를 암호화하고 서명하는 데 사용됩니다.
예제에서는 2048비트 길이의 RSA 개인 키를 생성합니다.
openssl genrsa -aes256 -out coforwardTemp.key 2048
- openssl genrsa: RSA 개인 키를 생성하는 명령어입니다.
- -aes256: AES 256비트 암호화를 적용하여 개인 키를 보호합니다. 이 과정에서 암호(passphrase) 입력이 필요합니다.
- -out coforwardTemp.key: 생성된 개인 키를 coforwardTemp.key라는 파일에 저장합니다.
- 2048: 키 길이를 2048비트로 설정합니다.
2. 개인키에서 암호 제거
개인 키에 설정한 암호를 제거하여 비밀번호 없이 인증서와 키를 사용하고자 할 때 사용됩니다.
openssl rsa -in coforwardTemp.key -out coforward.key
- openssl rsa: 기존 키 파일을 새로운 키 파일로 변환하는 명령어입니다.
- -in coforwardTemp.key: 암호화된 개인 키 파일을 지정합니다.
- -out coforward.key: 암호가 제거된 새로운 개인 키 파일을 생성합니다.
3. 인증서 서명 요청(CSR) 생성
CSR(Certificate Signing Request)은 인증 기관(CA)에 제출하여 인증서를 발급받기 위한 요청 파일입니다.
openssl req -new -key coforward.key -out coforward.csr -config coforward.cnf
- openssl req -new: CSR을 생성하는 명령어입니다.
- -key coforward.key: CSR 생성 시 사용할 개인 키 파일을 지정합니다.
- -out coforward.csr: 생성된 CSR을 coforward.csr 파일로 저장합니다.
- -config coforward.cnf: CSR에 포함될 정보를 지정하는 설정 파일(coforward.cnf)을 사용합니다. 이 파일에는 일반적으로 조직 이름, 도메인 이름 등 인증서에 포함될 정보가 기재됩니다.
4. CSR을 사용하여 인증서 발급 (루트 인증서로 서명)
CSR 파일을 루트 인증서로 서명하여 최종 인증서를 발급합니다.
이 과정에서는 자체 서명된 루트 인증서가 필요합니다. 서명 후 발급된 인증서 파일은 개인 인증서로 사용할 수 있습니다.
openssl x509 -req -days 1825 -extensions v3_user -in coforward.csr -CA D:\xampp\apache\conf\ssl.crt\rootca.crt -CAcreateserial -CAkey D:\xampp\apache\conf\ssl.key\rootca.key -out coforward.crt -extfile coforward.cnf
- openssl x509 -req: CSR을 인증서로 변환하는 명령어입니다.
- -days 1825: 발급된 인증서의 유효 기간을 1825일(약 5년)로 설정합니다.
- -extensions v3_user: 설정 파일에서 v3_user라는 확장을 사용하여 인증서에 특정 권한을 부여합니다. 설정 파일의 [ v3_user ] 섹션에 확장 옵션을 추가하여 세부 권한을 설정할 수 있습니다.
- -in coforward.csr: 서명할 CSR 파일을 지정합니다.
- -CA rootca.crt: 루트 인증서 파일을 지정합니다.
- -CAcreateserial: 시리얼 넘버를 자동 생성하여 rootca.srl 파일에 저장합니다.
- -CAkey rootca.key: 서명에 사용할 루트 인증서의 개인 키 파일을 지정합니다.
- -out coforward.crt: 발급된 인증서를 저장할 파일 이름을 지정합니다.
- -extfile coforward.cnf: 확장 정보를 포함한 설정 파일을 지정합니다.
'인프라' 카테고리의 다른 글
[apache] mod_rewrite 이용하여 www 자동으로 붙여주자 (0) | 2024.11.14 |
---|---|
service httpd restart 구성내용 (0) | 2023.08.02 |
[보안취약점] 웹서비스 메소드 설정 및 조치 방안 (GET POST PUT PATCH...) (0) | 2023.07.25 |
[가마] 센서 데이터를 java 로 받을때 문제점 빅엔디안/리틀엔디안 (0) | 2023.07.14 |
우분투 ll alias 추가 (0) | 2023.07.07 |