이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 14855|회답: 2

[웹사이트 구축 지식] 디스쿠즈에 대해! (X3.1) https 암호화 활성화 방법

[링크 복사]
게시됨 2015. 5. 30. 오후 11:42:13 | | |
시대는 끊임없이 변화하고 있으며, 안전한 통신에 대한 우리의 요구는 증가하고 있습니다. Discuz X3에서는 https가 지원된다고 되어 있어서, SSL 인증서를 받은 후 바로 웹사이트에 SSL을 추가했습니다. 하지만 추가한 후 많은 곳에서 https 링크를 사용하지 않는다는 것을 알게 되어, 무엇이 잘못됐는지 확인하려고 Discuz 소스 코드를 확인하기 시작했습니다.
1. SSL 인증서 및 구성
우선, SSL을 활성화하려면 인증서가 있어야 하죠? 일반 CA에서 발행하든 본인이 서명하든, 확실성이 전혀 없는 것은 불가능합니다. 아니라면 먼저 지원하세요. (구체적인 방법을 구글링해 주세요. 자세한 내용은 여기서 다루지 않겠습니다)
2, 디스쿠즈! 최적화2.1. 절차 조정
디스쿠즈에서! X3는 https 지원을 추가했고, https를 사용해 포럼에 접속하면 포럼 내 링크가 https로 변경됩니다. 대부분의 링크가 이미 https를 사용하고 있다면, Discuz가 자동으로 https를 인식한 것이므로 이 단계를 건너뛰고 바로 다음 단계로 넘어갈 수 있습니다.
Discuz는 $_SERVER['HTTPS']를 사용해 SSL을 판단하지만, VPS 아키텍처 문제(nginx+php-fpm) 때문에 이 방식으로 인식되지 않아 Discuz 프로그램($_SERVER['SERVER_PORT']을 사용해 조정해야 합니다).
출처/계급/디스쿠즈/discuz_application.php (187행):
찾기:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
코드 복사
수정:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
코드 복사
uc_server/avatar.php (약 13행):
찾기:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
코드 복사
수정:
  1. define('UC_API', strtolower(($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
코드 복사
수정 후 캐시를 업데이트했더니 대부분의 링크가 https로 변경되었습니다.
2.2. 배경 설정
https 사용에 방해가 될 수 있는 배경 설정들도 있습니다
백그라운드에서 >웹마스터> UCenter는 > UCenter의 접근 주소를 설정하며, https로 시작하도록 수정됩니다
UCenter > 애플리케이션 관리 > 애플리케이션의 메인 URL이 https로 시작하도록 수정됩니다
또한, 글로벌 > 도메인 이름 설정> 배경에서 https를 무효화할 수도 있습니다. 이전 단계를 거쳤음에도 불구하고 활성화할 수 없다면, 여기서 설정을 일시적으로 삭제해 시도해 보세요.
3. 캐시 해제
설정이 완료된 후에는 캐시를 지워야 설정이 활성화됩니다.
캐시와 메모리 캐시를 정리하고, 포스트 캐시를 설정했다면 데이터베이스 내 캐시를 정리해야 합니다(해당 캐시 데이터베이스를 비우거나 캐시가 실패할 때까지 기다리는 것).
이 시점에서 Discuz https가 성공적으로 활성화되었고, 물론 일부 페이지에 접근할 때 잠금이 통과될 수 있습니다. 다른 http 콘텐츠도 페이지에 로드되기 때문입니다. 통계 코드, QQ 공유 코드, QQ 쇼 아바타 등이 당분간 https 프로토콜을 제공하지 않아 활성화할 수 없습니다. Discuz가 https를 추가로 지원해주길 기다리세요.





이전의:2015 구글 I/O 컨퍼런스 신제품 컬렉션
다음:Nginx 자가 시작 실패
게시됨 2015. 6. 1. 오후 5:05:36 |
포럼은 SSL 암호화 전송 기술을 활성화하고자 합니다
게시됨 2018. 1. 3. 오후 1:57:42 |
직접 $_G['isHTTPS'] = 참;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')))));
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com