-
Private root CA를 활용하여 인증 체인 구성하기공부합시다!/LInux 2025. 12. 11. 16:39728x90
오늘은 private root CA를 생성하여 하위 인증서를 만들어 보도록 하겠습니다.
당연히 root CA를 클라이언트의 인증서 목록에 추가 하면 실제 외부 인증서 처럼 경고 메세지 없이
정상적으로 암호화하여 사용이 가능합니다.
private root ca --------------------------> server CA
이름:rootCA.crt --------------------------> 이름: sdkim.crt
sdkim.crt는 서버 인증서로 사용을 rootCA.crt는 클라이언트의 "신뢰할 수 있는 루트 인증 기관" 에 등록하는 순서입니다.
물론 체인인증서까지 서버에 등록을 해주시면 끝!
1. 일단 openssl 패키지와 작업할 디렉토리를 생성합니다.
# dnf install -y openssl # mkdir /cert # cd ../cert2. 인증요청서(csr)에 필요한 SAN(Subject Alternative Name: 주체 대체 정보)정보가 포함된 파일을 생성합니다.
root인증서와 서버인증서에 모두 필요함으로 각각 생성합니다.
2.1. root.cnf
[req] default_bits = 2048 prompt = no default_md = sha256 distinguished_name = dn req_extensions = v3_req [dn] C = KR ST = Kyounggi-do L = Paju-si O = KGI OU = EDU emailAddress = kgi@gmail.com CN = root [v3_req] subjectAltName = @alt_names [alt_names] DNS.1 = *.*.local2.2. sdkim.cnf
[ req ] default_bits = 2048 prompt = no default_md = sha256 req_extensions = v3_req distinguished_name = dn [dn] C = KR ST = Seoul L = Sungbook-gu O = sdkim OU = edu emailAddress = sdkim@gmail.com CN = sdkim [ v3_req ] subjectAltName = @alt_names [alt_names] DNS.1 = *.sdkim.local3. private root ca의 개인키(rootCA.key)와 server 개인키(sdkim.key)를 생성합니다.
# openssl genrsa -o rootCA.key 2048 # openssl genrsa -o sdkim.key 20484. private rootCA 인증요청서(rootCA.csr) 및 private 서버 인증요청서(sdkim.csr) 파일 생성
# openssl req -new -key rootCA.key -config root.cnf -out rootCA.csr # openssl req -new -key sdkim.key -config sdkim.cnf -out sdkim.csr 확인 # openssl req -text -noout -in rootCA.csr # openssl req -text -noout -in sdkim.csr4.1. 확인시 반드시 아래의 정보가 포함되어야 합니다.


5. private rootCA 인증서(rootCa.crt) 및 Private 서버 인증서(sdkim.crt) 생성
# openssl x509 -req -in rootCA.csr -signkey rootCA.key -out rootCA.crt -extfile root.cnf -extensions v3_req # openssl x509 -req -in sdkim.csr -CA rootCA.crt -CAkey rootCA.key CAcreateserial -out sdkim.crt -extfile sdkim.cnf -extensions v3_req * 확인 # openssl x509 -text -noout -in rootCA.crt # openssl x509 -text -noout -in sdkim.crt5.1. 확인 시 역시 DNS 정보가 확인되어야 합니다.


5.2. 두 개의 인증서를 합치면 체인 인증서 파일이 됩니다.
나중에 쓸일이 있으니 미리 만들어 두세요.
# cat rootCA.crt sdkim.crt > rootsd.crt 순서 주의 반드시 root 인증서 부터5.3. /cert 디렉토리의 인증서 및 개인키 파일을 /etc/pki/tls 디렉토리로 이동해주세요! 설정 때 편해 집니다.
# cp sdkim.crt rootCA.crt sdroot.crt /etc/pki/tls/certs/ # cp sdkim.key rootCA.key /etc/pki/tls/private/6. 이제 httpd패키지와 mod_ssl 모듈을 설치해 주세요!
# dnf install -y httpd mod_sslindex.html 파일은 /var/www/html/ 디렉토리에 생성해 주세요. 기본 설정 변경하지 않겠습니다.
7. /etc/httpd/conf.d/ssl.conf 파일을 수정해 주세요!


7.1. 설정 후 service 실행 및 방화벽을 오픈해 주세요!
# systemctl enable --now httpd # firewall-cmd --permanent --add-port=443/tcp # firewall-cmd --reload8. Test용 클라이언트로 rootCA.crt를 다운로드 합니다.
# scp 사용자명@서버IP:/경로지정 다운로드경로지정
9. 클라이언트 측에서 인증서를 등록합니다.
9.1. 실행 -> certlm.msc

9.2. 인증서 - 로컬 컴퓨터
9.2.1. 신뢰할 수 있는 루트 인증 기관 -> 인증서 -> 모든 작업 -> 가져오기

9.2.2. 인증서 가져오기 마법사 실행

9.2.2. 다운로드 한 파일을 가져오기 합니다.

9.2.3. 신뢰할 수 있는 루트 인증 기관에 등록합니다.

9.2.4. 완료

9.2.5. 확인 반드시 SAN 정보 확인하세요.

10. 클라이언트 브라우저 접속 테스트: 아무런 경고 메세지가 출력되지 않고 https로 접속이 되어야 합니다.

쉽지 않은 작업들입니다.
하나 하나 차분하게 작업해 보세요!
인증서에 관해서는 도사들이 되어 있으실 겁니다.
첨부 pfx 파일 만들기
# openssl pkcs12 -export -out sdkim.pfx -inkey sdkim.key -in sdkim.crt728x90'공부합시다! > LInux' 카테고리의 다른 글
Rockylinux apache 인증에 AD(Active Directory)의 LDAP 활용 (0) 2025.12.09 AD를 Linux의 인증 서버로 활용하기! (0) 2025.12.08 Sendmail error: 553 Error (0) 2024.05.23 3Tier WEB, DB, NAT (0) 2024.05.21 CentOS7: Firewall을 활용한 NAT 설정 (0) 2023.11.03