반응형
웹사이트 보안을 위해 HTTPS 적용은 필수입니다. 비용 부담 없이 무료로 SSL 인증서를 발급받고, 실제 서버(Apache, Nginx)에 적용하는 방법을 단계별로 상세히 안내합니다.
1. 무료 SSL 인증서 발급 사이트 소개
대표적인 무료 SSL 인증서 발급처는 다음과 같습니다.
- Let's Encrypt: 오픈소스 툴(Certbot)로 자동 발급 및 갱신 지원. 90일 유효기간
- SSL For Free / ZeroSSL: 웹 기반으로 손쉽게 발급 가능. 90일 유효기간.
2. SSL For Free/ZeroSSL에서 인증서 발급받기
2-1. 인증서 발급 절차
- 사이트 접속 및 회원가입
- https://www.sslforfree.com 방문 후 회원가입
- 도메인 입력 및 인증서 옵션 선택
- 'Create Free SSL Certificate' 클릭 후 도메인 입력.
- 90일 무료 인증서 선택(1년짜리는 유료)
- CSR 정보 입력
- 자동 생성(Auto-Generate) 선택 가능
- 도메인 소유 인증
- 세 가지 방식 중 선택:
- 이메일 인증: 도메인 소유 이메일로 인증.
- DNS(CNAME) 인증: 안내된 CNAME 레코드를 도메인 DNS에 추가.
- HTTP 파일 업로드: 안내된 파일을 서버의 /.well-known/pki-validation/ 경로에 업로드.
- 일반적으로 DNS(CNAME) 인증이 가장 확실함.
- 세 가지 방식 중 선택:
- 인증 완료 후 인증서 다운로드
- 인증이 통과되면 인증서 파일(.crt), 개인키(.key), CA 번들(.ca-bundle) 등 다운로드
3. Let's Encrypt (Certbot)로 인증서 발급받기
3-1. 사전 준비
- 리눅스 서버(root 권한), 도메인 연결, 80/443 포트 개방
- Certbot 설치 필요
3-2. Certbot 설치 및 인증서 발급
# 예시: Ubuntu/Debian
sudo apt update
sudo apt install certbot
# 예시: CentOS
sudo yum install epel-release
sudo yum install certbot
- Webroot 방식(추천):
- -w: 웹루트 디렉토리
- -d: 도메인명(여러 개 가능)
- 이메일, 약관 동의 등 추가 옵션 필요
sudo certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com
- Apache/Nginx 자동 구성:
- Apache:
sudo certbot --apache -d example.com
-
- Nginx:
sudo certbot --nginx -d example.com
- Apache:
- 인증서 위치: /etc/letsencrypt/live/도메인명/
4. 서버별 SSL 인증서 적용 예시
4-1. Nginx 설정 예시
server {
listen 80;
server_name example.com www.example.com;
location /.well-known/acme-challenge/ {
root /var/www/html;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 보안 강화 옵션
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
root /var/www/html;
try_files $uri $uri/ =404;
}
}
- certbot 또는 SSL For Free에서 받은 파일 경로에 맞게 수정
4-2. Apache 설정 예시
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
<Directory "/var/www/html">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
- default-ssl.conf 또는 별도 conf 파일에 추가
5. 인증서 자동 갱신 설정
- Let's Encrypt 인증서는 90일 유효. 자동 갱신을 위해 crontab 등록 권장
# 매월 1일, 16일 새벽 4:30에 갱신
30 4 1,16 * * root /usr/bin/certbot renew && systemctl reload nginx
# 또는 Apache라면 systemctl reload httpd
6. 주요 참고 및 주의사항
- 무료 인증서는 대부분 90일 유효, 만료 전에 반드시 갱신 필요
- 와일드카드 인증서는 대부분 유료 플랜에서만 지원
- 서버와 도메인 연결, 포트 개방, DNS 설정 등 사전 준비 필수
- 구형 브라우저(Windows XP SP3 미만 등) 호환성 이슈 존재
요약
- SSL For Free/ZeroSSL 또는 Let's Encrypt(Certbot)에서 무료 인증서 발급.
- 도메인 소유 인증(DNS, 이메일, HTTP 파일 업로드 등) 후 인증서 다운로드.
- Nginx, Apache 등 웹서버 conf 파일에 인증서 경로 지정.
- 90일마다 인증서 갱신(자동화 권장).
이 과정을 따라하면, 비용 부담 없이 안전하게 HTTPS를 적용할 수 있습니다.
반응형
'소프트웨어 > Etc.' 카테고리의 다른 글
Synology: 와일드카드 인증서 추가 방법 (1) | 2025.04.29 |
---|---|
Inno Setup 설치 프로그램 및 패키징 방법 (1) | 2025.04.29 |
Application Memory Dump 분석하기 (part 2) (0) | 2016.01.19 |
Application Memory Dump 분석하기 (part 1) (0) | 2016.01.19 |