Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 14855|Resposta: 2

[Conhecimento sobre Construção de Sites] Sobre o Discuz! (X3.1) Como habilitar a criptografia https

[Copiar link]
Publicado em 30/05/2015 23:42:13 | | |
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ção
Primeiro 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 procedimento
Do 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:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Copiar código
Modificado para:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Copiar código
uc_server/avatar.php (aprox. linha 13):
Encontre:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Copiar código
Modificado para:
  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'], '/'))));
Copiar código
Após a modificação, atualizei o cache e percebi que a maioria dos links virou https.
2.2. Configurações de fundo
També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 cache
Depois 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.





Anterior:Coleção de Novos Produtos da Conferência Google I/O 2015
Próximo:A autoinicialização do Nginx falhou
Publicado em 01/06/2015 17:05:36 |
O fórum quer habilitar tecnologia de transmissão criptografada SSL
Publicado em 03/01/2018 13:57:42 |
Direto $_G['isHTTPS'] = verdadeiro;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com