본문 바로가기

IT/네트워크

ssl 인증서 교체하는 방법

728x90
반응형

 

 

SSL 인증서를 교체하려면 아래 단계를 따라야 합니다. 사용하는 웹 서버와 환경에 따라 약간의 차이가 있을 수 있습니다.

 

일반적인 SSL 인증서 교체 과정을 설명합니다.


1. 새 SSL 인증서 발급

a. 기존 인증서 만료 확인

  • 기존 인증서의 만료일을 확인하고 만료 전에 새 인증서를 준비합니다.
    • 확인 방법: 
    •  
bash

openssl x509 -in your_certificate.crt -text -noout

b. CSR (Certificate Signing Request) 생성

  • 새로운 인증서를 발급받기 위해 CSR 파일을 생성합니다.
  • CSR 생성 명령:
     
  • 입력 정보:
    • Common Name (CN): 도메인 이름 (예: example.com).
    • 기타 정보: 국가, 조직명 등.
bash

openssl req -new -newkey rsa:2048 -nodes -keyout your_domain.key -out your_domain.csr

c. SSL 인증서 구매 및 발급

  • 인증 기관(CA, Certificate Authority)에서 새 인증서를 구매하거나 무료 인증서 서비스(예: Let's Encrypt)를 사용.
  • CSR 파일을 제출하여 인증서를 발급받습니다.

2. 서버에 SSL 인증서 설치

a. 기존 인증서 백업

  • 기존 인증서를 백업하여 문제가 발생할 경우 복구 가능하도록 준비합니다.
bash

cp /etc/ssl/certs/old_certificate.crt /etc/ssl/certs/old_certificate_backup.crt

b. 새 인증서 파일 배치

  • 발급받은 인증서 파일(예: your_domain.crt)과 프라이빗 키(예: your_domain.key)를 서버에 업로드.
  • 파일 경로를 기록해 둡니다.

c. 인증서 체인 파일 준비

  • CA가 제공한 체인 인증서 파일(예: ca_bundle.crt)을 다운로드합니다.
  • 인증서 체인 파일이 없으면 인증서 설치가 실패할 수 있습니다.

3. 웹 서버 설정 업데이트

웹 서버에 따라 설정 파일을 수정해야 합니다.

a. Apache 웹 서버

  1. SSL 모듈 활성화
  2. bash
     
    a2enmod ssl systemctl restart apache2
  3. 가상 호스트 설정 업데이트 /etc/apache2/sites-available/your_site.conf 파일을 열고 아래 내용을 수정:
  4. apache
     
    <VirtualHost *:443> ServerName example.com SSLEngine on SSLCertificateFile /path/to/your_domain.crt SSLCertificateKeyFile /path/to/your_domain.key SSLCertificateChainFile /path/to/ca_bundle.crt </VirtualHost>
  5. 설정 테스트 및 재시작
  6. bash
     
    apachectl configtest systemctl restart apache2

b. Nginx 웹 서버

  1. SSL 설정 수정 /etc/nginx/sites-available/your_site 파일을 열고 아래 내용을 수정:
  2. nginx
     
    server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/your_domain.crt; ssl_certificate_key /path/to/your_domain.key; ssl_trusted_certificate /path/to/ca_bundle.crt; # Optional settings for enhanced security ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; }
  3. 설정 테스트 및 재시작
  4. bash
     
    nginx -t systemctl reload nginx

4. SSL 인증서 갱신 확인

  • 웹 브라우저에서 사이트를 열어 새 인증서가 적용되었는지 확인합니다.
  • 인증서 정보 확인:
    • 브라우저에서 주소창 옆 자물쇠 아이콘 클릭.
    • "인증서 보기" 또는 "보안" 섹션에서 새 인증서 정보를 확인.

CLI를 이용한 확인

bash

openssl s_client -connect example.com:443 -showcerts

5. 자동 갱신 설정 (선택)

a. Let's Encrypt 사용 시 자동 갱신

  • Certbot을 설치하고 자동 갱신 스크립트를 설정합니다.
bash

certbot renew --dry-run

b. 자체 갱신 스크립트

  • 인증서 갱신 작업을 스케줄링하기 위해 cron job을 설정합니다.

6. 문제 해결

  • 인증서 경로 오류: 파일 경로가 정확한지 확인.
  • 체인 인증서 누락: ca_bundle.crt가 포함되었는지 확인.
  • 웹 서버 재시작 실패: 로그 파일(/var/log/apache2/error.log 또는 /var/log/nginx/error.log)에서 원인 분석.

이 과정을 통해 SSL 인증서를 안전하고 정확하게 교체할 수 있습니다.

300x250
반응형