|
시대는 끊임없이 변화하고 있으며, 안전한 통신에 대한 우리의 요구는 증가하고 있습니다. 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행): 찾기: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
코드 복사수정: - $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
코드 복사uc_server/avatar.php (약 13행): 찾기: - define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
코드 복사수정: - 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를 추가로 지원해주길 기다리세요.
|