일부 페이지만 보안인증(SSL)을 적용하기
본문
안녕하세요?
이제 제법 날씨가 쌀쌀해졌습니다.건강 조심하시구요~
전체가 아닌 일부(로그인, 회원가입, 정보수정)에만 보안인증(SSL)을 적용하려고 합니다.
그런데, 문제가 생겼습니다. 몇 달 째 이리저리 해도 잘 안 됨니다...ㅜㅜ
익스 등에서는 잘 되는데...유독 크롬에서만 문제가 되는군요~ 크롬에서는 파비콘도 안 나타납니다.
크롬 > 도구 더보기 > 개발지 도구 > 콘솔에서 봐도 이유를 잘 모르겠습니다.
적용하려고 했던 코드는 다음과 같습니다.
첫 번째
# .htaccess에 넣어 보안인증 SSL 전체 리다이렉트 하기
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.xxx.co.kr:444/$1 [R,L]
두 번째
// 특정 페이지 넣어 일부만 https로 강제 접속하기
if($_SERVER['HTTPS'] != "on") {
goto_url("https://".$_SERVER['HTTP_HOST'].":444".$_SERVER['REQUEST_URI']);
exit;
}
1. 두 번째 코드인 'https로 강제 접속하기' 코드를 login.php에 넣으면 로그인에서는 자물쇠가 나타나 문제가 없습니다.
2. 정보수정 → 회원 비밀번호 확인에서 문제가 생겼습니다.
'전체 리다이렉트' 코드를 .htaccess에 넣으면 다음처럼 되어 자물쇠가 잘 나타납니다.
https://www.xxx.co.kr:444/bbs/member_confirm.php?url=https://www.xxx.co.kr:444/bbs/register_form.php
그런데 '전체 리다이렉트' 코드를 .htaccess에 넣지 않고 '일부만 https로 강제로 접속'하게 하는 코드를 member_confirm.php에 넣으면 다음처럼 되어 자물쇠가 아닌 느낌표가 나타납니다.
https://www.xxx.co.kr:444/bbs/member_confirm.php?url=http://www.xxx.co.kr/bbs/register_form.php
보니까...모바일에서는 자물쇠가 잘 나타나는군요~ 참 어렵습니다...ㅜ
3. 회원가입 시 위의 첫 번째와 두 번째 코드 어느 것을 넣어도 마지막 부분에 캡차(kcaptcha)가 없으면 자물쇠가 잘 나타나고 캡차가 있으면 느낌표가 나타납니다.
질문 내용이 길어서 죄송합니다.
어찌하면 좋을까요? 힌트라도 주시면 감사하겠습니다.
그럼, 오늘도 좋은 하루 되십시오~
감사합니다.
답변 3
크롬은
https:// 로 접근한 페이지 안에, ( html 소스상을 말합니다. )
http:// 로 연결되는 것이 하나라도 있으면, ( 이미지, js, css , 각종 url 등등 )
느낌표로 표시합니다.
이런것을 고려해서 접근해 보시면 될 듯 합니다.
참조바랍니다.
저도 수 개월 동안 헤메이다 답을 찾았습니다.
그누보드5, 영카트5 에서는 인코딩 방식을 UTF-8 만 지원합니다.
저 같은 경우에는 저장시 UTF-8 이 아닌 UTF-8 + BOM 인코딩으로 저장이 되는 경우 문제가 되었던 것이었습니다.
* UTF-8 파일에서 BOM (Byte Order Mark) 이 발견되었을때 해결방법 → https://sir.kr/faq/25
위의 방법으로 하였더니 파비콘도 정상으로 뜨고 자물쇠도 정상, 그리고 스크립트 오류도 정상으로 돌아왔습니다. 고치고 나니...좀 허탈했습니다.
죄송한데... 요즘은 아예전체 페이지를 https 하지 않으면 크롬에서 안전하지 않은 사이트라고 도매하기에 그냥 전체를 다 https 하는게 낫지 않을까요? 경로에서 인클루드나 이미지들은 모두 //~ 로 교체하고...