보안서버 ssl적용

보안서버 ssl적용

QA

보안서버 ssl적용

본문

보안서버 ssl적용을 했는데.

관리자 페이지에 들어가면 자물쇠모양이 나오는데..

테마적용된 쇼핑몰페이지 부분에는 적용이 안되어 나옵니다..

config.php 이부분 말고 고쳐야 될 부분이 있나요?

이 질문에 댓글 쓰기 :

답변 6

이미지들이 https가 아닌 http로 연결되어 있습니다.

 

F12 개발자 모드에서 해당하는 코드들을 찾아 전부 https로 수정해줘야 합니다.

 

이미지가 루트에 있는데 수동으로 넣으신 부분이 많네요.

웹 페이지 내에 하드 코딩된 http:// 에 대한 처리 방법입니다.

 

보안 서버 설정 (Apache2, Let's Encrypt SSL 기준, Ubuntu)

 

사이트 주소 : aabb.com (가정)

 

제 경우는 Let's Encrypt 무료 서비스를 이용하고 있습니다.
3개월마다 갱신하는데 갱신할때에 갱신 프로그램이 신청한 사이트의 주인이 맞는지 확인하는 과정을 거치게 됩니다.

 

갱신 명령어 sudo letsencrypt renew

 

1. 지정한 폴더 ( /웹사이트저장위치}/.well-known )에 임시 파일 생성

 

2. Let's Encrypt 서버에 자신의 주소 ( aabb.com ) 를 보내고 신청

 

3. Let's Encrypt 서버는 요청자의 웹 사이트를 http 로 접속 (https아님)하여 1에서 지정한 파일이 있는지 확인
http://aabb.com/.well-known/어떤 파일

 

4. 모든 것이 정상적이면 ssl 인증서 갱신

---------

위와 같은 상황이므로 http://aabb.com/.well-known/ 로 시작하는 파일은 그냥 그대로 서비스 하고
http://aabb.com/다른폴더/어떤파일 의 경우는 https://aabb.com/다른폴더/어떤파일 로 바꾸길 원합니다.

 

Apache Conf 에서 http (80) 부분에서 지정합니다. (https (443) 아님)

 

<IfModule mod_rewrite.c>
RewriteEngine   on

RewriteCond %{REQUEST_URI} ^/\.well\-known
RewriteRule . - [L]

 

<IfModule mod_ssl.c>
RewriteCond %{REQUEST_URI} !^/\.well\-known
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
</IfModule>

 

---------

위의 설정 설명
<IfModule mod_rewrite.c>
- mod_rewrite 모듈이 설치 되었을때만 적용

 

RewriteEngine   on
- rewrite 엔진 시작 (사용자의 요청 주소를 다른 주소로 바꾸어 주는 서비스)

 

RewriteCond %{REQUEST_URI} ^/\.well\-known
- 만일 (RewriteCond) 요청자의 주소 (%{REQUEST_URI}) 가 주소 처음(^)이 /.well-known 이라면
- . 나 - 은 다른 뜻을 가진 특수 문자이므로 \ 표시로 막아 줍니다. . 라 표시 하지 않고 \.로 표기
- 특수 문자가 아니어도 \로 표기해도 문제 없습니다. A 라 해도 되고 \A 라 해도 됩니다.
- 애매하면 \ 를 붙입니다.

 

RewriteRule . - [L]
- 진행하라 (RewriteRule)  요청한 주소 내용(.)을 수정없이 (-) 이것으로 조건문 끝 ([L]) 

 

<IfModule mod_ssl.c>
- mod_ssl 모듈이 설치 되었을때만 적용

 

RewriteCond %{REQUEST_URI} !^/\.well\-known
- 만일 (RewriteCond) 요청자의 주소 (%{REQUEST_URI}) 가 주소 처음(^)이 /.well-known 이 아니라면 (!)

 

RewriteCond %{HTTPS} !=on
- 만일 https (%{HTTPS}) 가 켜져 (on) 있지 않다면 (!=)
- https 로 시작하지 않는 주소

 

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- 진행하라 (RewriteRule)  요청한 주소 내용을 처음부터 (^) 전체를
- https://요청호스트(%{HTTP_HOST}%)요청주소({REQUEST_URI})로 
- 이동 (R=301 : 응답코드 301 페이지 영원히 이동) 하고
- 조건문 끝 (L)

 

</IfModule>
- Apache 조건문 닫음 <IfModule mod_ssl.c> 

 

</IfModule>
- Apache 조건문 닫음 <IfModule mod_rewrite.c>

 

---------

 

Apache 명령어 (Ubuntu)

 

설정 체크  
sudo apache2ctl configtest

 

module 체크
sudo apache2ctl -M

 

서비스 재시작 (중지했다 시작)
sudo service apache2 restart

 

서비스 설정파일 재적용 (중지 없음)
sudo service apache2 reload

 

---------

 

Apache conf 파일을 수정시
sudo certbot renew --dry-run 
명령을 통해 SSL 갱신 명령어가 잘 작동하는지 꼭 확인해 두어야 합니다.

 

테스트


http://aabb.com/.well-known/test.txt 파일을 올려 두고 확인 했을 때
http://aabb.com/.well-known/test.txt 

https://aabb.com/.well-known/test.txt 파일을 올려 두고 확인 했을 때
https://aabb.com/.well-known/test.txt 로 변화 없이 진행


http://aabb.com/test.txt, http://aabb.com/다른 폴더/test.txt 의 파일들은
https://aabb.com/test.txt, https://aabb.com/다른 폴더/test.txt 로 변경

https://aabb.com/test.txt, https://aabb.com/다른 폴더/test.txt 의 파일들은
https://aabb.com/test.txt, https://aabb.com/다른 폴더/test.txt 로 변화 없이 진행

 

브라우저에서 테스트 할 수도 있으나 캐쉬 등으로 비정상 작동할 수 있으므로 curl 등의 명령어를 이용해서 보면 정확합니다.
https://curl.haxx.se/download.html
 

방금 사이트를 접속해 보았습니다.

 

현재의 상태
http://beautyque.co.kr/  -> http://beautyque.co.kr/
http://www.beautyque.co.kr/  -> http://beautyque.co.kr/

https://beautyque.co.kr/  -> https://beautyque.co.kr/
https://www.beautyque.co.kr/  -> https://beautyque.co.kr/

입니다.

 

현재 웹 서버 설정으로는
www.사이트 주소를 -> 사이트 주소로 바꾸어 주는 서비스는 작동중입니다.

 

메인 주소뿐 아니라 하위 주소
예를 들어 
http://www.beautyque.co.kr/data/item/canvas5/1212.gif
도 
http://beautyque.co.kr/data/item/canvas5/1212.gif
으로 서비스 되고 있습니다.


원하는 상태
http://beautyque.co.kr/
http://www.beautyque.co.kr/
https://beautyque.co.kr/
https://www.beautyque.co.kr/

위의 모든 요청을 https://beautyque.co.kr/ 으로 변경
일 것입니다.

 

사용자가 웹 브라우져에서 주소를 입력할 경우 beautyque.co.kr 이렇게 입력하면
http://beautyque.co.kr/ 이 주소를 먼저 방문하게 됩니다. (검색 엔진 등에서도 이전 주소인 http:// 로 저장되어 있을 것입니다.)


해서 https://beautyque.co.kr/ 에 접속이 안 되는 걸로 보입니다.

 

만일 사용자가 정확하게 https://beautyque.co.kr/ 를 입력한다면 모를까 보통의 경우를 예상하여 서비스를 수정해 두어야 합니다. 검색 엔진에 이전의 주소 (http://beautyque.co.kr/어떤주소들 도 같은 문제입니다.)

 

http://beautyque.co.kr/ 의 주소가 아니라 http://beautyque.co.kr/어떤폴더/어떤파일명 을 요청할 경우도 있을텐데  이 경우도 모두 https://beautyque.co.kr/어떤폴더/어떤파일명 로 변경해 주는 사항까지 고려해야 합니다.

 

여러 방법이 있지만 웹 서버의 설정 파일에서 수정하는 방법이 최선입니다.

 

아파치의 웹 서버의 설정파일에서

<IfModule mod_rewrite.c>
RewriteEngine   on
<IfModule mod_ssl.c>
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
</IfModule>

이라고 삽입해 두면 됩니다.

 

https://beautyque.co.kr/ 에 접속해 보았을때 대부분의 파일들은 https://beautyque.co.kr/파일명 으로 잘 서비스 되고 있습니다.

 

몇개 보이는 http://beautyque.co.kr/ 로 시작하는 주소는 관리자 설정 화면에서 찾아서 수정하시면 될 듯 합니다.

(페이지 소스 보기 http:// 으로 검색)

 

상세 사항은 이전 답변에 올려 두었습니다.
 

답변을 작성하시기 전에 로그인 해주세요.
전체 74
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT