
시연용 페이지에서 ssl을 적용하기 위해 무료 인증서인 letsencrypt를 사용해보았다. 이전에 css가 깨지는 문제를 해결하다 인스턴스가 먹통이 되어서 해결을 못하였는데 이번 기회에 해결할 수 있었다.

유형 HTTPS 로 설정하면 443 포트가 자동으로 잡힌다. 규칙 추가
netstat 명령어 적용이 안되서 net-tools 설치 후 ss 명령어를 통해 포트 확인
(ss는 netstat와 비슷한 정보를 보여주는 명령어)
sudo apt install net-tools
sudo ss -tnlp

sudo apt install certbot
letsencrypt --version

sudo apt install python3-certbot-apache
구동 중인 apache 서버 중지
sudo service apahce2 stop
Standalone 방식으로 인증서 발급
sudo certbot certonly --standalone -d www.citymart.kr
-d 뒤 에는 ssl을 적용할 도메인 입력
인증서 경로는 아래와 같다.
/etc/letsencrypt/live/www.citymart.kr
apache 웹 서버의 설정 파일 편집
/etc/apache2/sites-available/000-default.conf

또는 default-ssl 파일에서 VirtualHost 443 부분 코드를 수정 후 sudo a2ensite default-ssl 로 설정을 활성화 해도 됨
sudo a2enmod ssl
명령어로 ssl 엔진 활성화

define('G5_DOMAIN', '[https://www.citymart.kr](https://www.citymart.kr/)'); define('G5_HTTPS_DOMAIN', '[https://www.citymart.kr](https://www.citymart.kr/)');
부분 수정 (https 붙은 도메인으로)
이렇게 변경 후에 sudo systemctl restart apache2 로 apache 서버를 재시작 하고 https 경로로 접속해보면

css가 깨져서 나온다..
이 문제에 대해서는 구글링을 해도 모두 config.php 를 수정하면 된다고 하는데 gpt에 물어보니 mixed contents 문제 때문이라는 답변을 받았고, redirect 를 설정해면 된다고 하였다.
혼합 콘텐츠 문제 해결:
이전에는 페이지가 HTTPS로 로드되었지만, 일부 리소스(CSS, 자바스크립트, 이미지 등)가 여전히 HTTP로 요청되고 있었을 가능성이 높습니다. 이 리다이렉션 규칙으로 인해 모든 리소스 요청이 HTTPS로 변환되어 혼합 콘텐츠 문제가 해결되었습니다
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
따라서 모든 리소스 요청을 https로 변환하기 위해 .htaccess 파일을 생성 한 후 rewrite 를 설정하였다.

ssl 적용 후 css 깨지는 문제까지 해결 완료