|
Os tempos estão em constante evolução, e nossa demanda por comunicação segura está aumentando. No Discuz X3, dizem que o https é suportado, então, depois que recebi o certificado SSL, adicionei SSL ao site assim que o recebi. Mas depois de adicionar, percebi que muitos lugares não usavam links https, então comecei a checar o código-fonte do Discuz para ver o que tinha dado errado. 1. Certificado SSL e configuraçãoPrimeiro de tudo, para habilitar o SSL, você precisa ter um certificado, certo? Seja emitido por uma CA regular ou assinado por si mesmo, não é possível não ter certeza. Se não, solicite primeiro uma candidatura. (Por favor, pesquise o método específico, não vou entrar em detalhes aqui) 2、Discuz! Otimizado2.1. Ajuste do procedimentoDo Discuz! O X3 adicionou suporte para https, e se você usar https para acessar o fórum, os links no fórum se tornarão https. Se você perceber que a maioria dos links já usa https, significa que o Discuz reconheceu automaticamente, e você pode pular essa etapa e ir direto para a próxima. O Discuz usa $_SERVER['HTTPS'] para avaliar SSL, mas devido ao meu problema de arquitetura VPS (nginx+php-fpm), não pode ser reconhecido dessa forma, então preciso fazer alguns ajustes no programa Discuz (usando $_SERVER['SERVER_PORT']). fonte/classe/discuz/discuz_application.php (c. linha 187): Encontre: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Copiar códigoModificado para: - $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Copiar códigouc_server/avatar.php (aprox. linha 13): Encontre: - define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Copiar códigoModificado para: - 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'], '/'))));
Copiar códigoApós a modificação, atualizei o cache e percebi que a maioria dos links virou https. 2.2. Configurações de fundoTambém há configurações em segundo plano que podem interferir no uso do https Em segundo plano, o >webmaster > UCenter define o endereço de acesso > UCenter, que é modificado para começar com https UCenter > Gerenciamento de Aplicações > A URL principal da aplicação é modificada para começar com https Além disso, algumas configurações em segundo plano > configurações globais de > de nome de domínio também podem invalidar o https; se você já fez as etapas anteriores e ainda não conseguir ativar, pode temporariamente excluir as configurações aqui para tentar. 3. Limpar o cacheDepois que as configurações estiverem completas, você precisa limpar o cache para que as configurações entrem em vigor. Limpe o cache e o cache de memória, e se você definir o post cache, precisa limpar o cache do banco de dados (esvaziar o banco de dados correspondente ou esperar o cache falhar). Neste ponto, o Discuz https está ativado com sucesso e, claro, ao acessar algumas páginas, o bloqueio pode ser ultrapassado. Porque outro conteúdo http é carregado na página. Podem ser códigos de estatísticas, códigos de compartilhamento QQ, avatares de show QQ, etc., que não fornecem protocolo https por enquanto, então não podem ser ativados. É só esperar o Discuz dar suporte adicional ao https.
|