SSL 인증서를 적용하는 방법은 AWS 서비스(EC2, ALB, CloudFront 등) 에 따라 다릅니다.
현재 설정을 보면 Apache 웹 서버에서 직접 SSL 적용하려는 것으로 보입니다.


✅ 1. SSL 인증서 준비

Apache에서 SSL을 설정하려면 아래 3가지 파일이 필요합니다.
이 파일들은 보통 인증서 발급 기관(CA)에서 제공됩니다.

1️⃣ 서버 인증서 (cert.crt)
2️⃣ 개인 키 (prv_.key)
3️⃣ 중간 인증서(체인 파일) (subca1_.crt 또는 chain.pem)

📌 파일이 없다면 Let's Encrypt 또는 AWS Certificate Manager(ACM)에서 무료로 발급 가능


✅ 2. Apache SSL 설정 (/etc/httpd/conf.d/ssl.conf 수정)

🔹 파일 열기

bash

vi /etc/httpd/conf.d/ssl.conf

🔹 아래 설정 추가 또는 수정

apache

SSLPassPhraseDialog "exec:/etc/httpd/conf/sslpass.sh"

<VirtualHost *:443> ServerName farmer-k.com DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /home/ssl/cert.crt SSLCertificateKeyFile /home/ssl/prv_.key SSLCertificateChainFile /home/ssl/subca1_.crt <Directory /var/www/html> AllowOverride All </Directory> ErrorLog logs/ssl_error_log CustomLog logs/ssl_access_log combined </VirtualHost>

✅ 3. SSLPassPhraseDialog 설정 (비밀번호 자동 입력)

키 파일에 비밀번호가 설정된 경우, Apache가 재시작할 때마다 비밀번호 입력을 요구할 수 있습니다.
이를 자동화하려면 /etc/httpd/conf/sslpass.sh을 사용합니다.

🔹 비밀번호 자동 입력 스크립트 (sslpass.sh) 생성

bash

vi /etc/httpd/conf/sslpass.sh

🔹 스크립트 내용 추가

bash

#!/bin/sh echo "비밀번호" # 여기에 개인 키의 비밀번호 입력

🔹 실행 권한 부여

bash

chmod 755 /etc/httpd/conf/sslpass.sh

🔹 Apache 설정 파일에서 SSLPassPhraseDialog 적용

apache

SSLPassPhraseDialog "exec:/etc/httpd/conf/sslpass.sh"

✅ 4. 방화벽(SELinux & Firewall) 설정

🔹 방화벽에서 443 포트 열기 (HTTPS 허용)

bash

firewall-cmd --permanent --add-service=https firewall-cmd --reload

🔹 SELinux 사용 중이면 허용 설정

bash

sudo setsebool -P httpd_can_network_connect 1

✅ 5. Apache 재시작 및 SSL 적용 확인

🔹 Apache 설정 파일 문법 확인

bash

sudo apachectl configtest

"Syntax OK" 메시지가 나오면 설정이 정상적임

🔹 Apache 재시작

bash

sudo systemctl restart httpd

🔹 SSL 인증 적용 확인 (웹 브라우저에서 접속 또는 curl 사용)

bash

curl -v https://farmer-k.com

✅ SSL 인증서가 정상적으로 적용되었으면 HTTPS 접속 가능


✅ 6. 자동 갱신 (Let's Encrypt 사용 시)

🔹 Certbot 설치 (Let's Encrypt 자동 인증서 발급 및 갱신)

bash

yum install -y certbot python3-certbot-apache

🔹 SSL 인증서 발급

bash

certbot --apache -d farmer-k.com -d www.farmer-k.com

🔹 자동 갱신 설정

bash

certbot renew --dry-run

✅ 자동 갱신이 정상 작동하는지 테스트 후 크론잡 등록 가능


🚀 결론 (지금 해야 할 것)

1️⃣ SSL 인증서(cert.crt, prv_.key, subca1_.crt) 확인 후 설정 적용
2️⃣ Apache 설정 수정 (/etc/httpd/conf.d/ssl.conf)
3️⃣ 방화벽에서 443 포트 열기 (firewall-cmd)
4️⃣ Apache 재시작 (systemctl restart httpd) 후 접속 확인
5️⃣ Let's Encrypt 사용 시 Certbot 설치 후 자동 갱신 설정

이후에도 HTTPS 연결이 안 되면 journalctl -xe 로 Apache 로그 확인! 🔥