O que eu preciso fazer para converter meu MultiSite de HTTP para HTTPS?

8

Recebi a tarefa de converter cerca de 100 sites em minha instância de vários sites para HTTPS.

Eu posso facilmente escrever um script para acessar o banco de dados e alterar os valores siteurl e home para HTTPS, o que deve forçar o site a enfileirar scripts e futuras imagens incorporadas ao HTTPS, certo?

Bem, também precisarei passar por todos os post_content para quaisquer links internos, bem como imagens usando HTTP e convertê-los em HTTPS.

Eu provavelmente poderia juntar algo para fazer isso, mas estou me perguntando o que mais eu preciso mudar. GUIDs, certo? Se eu usasse os comandos $ wpdb, precisaria resserializar o banco de dados depois?

Eu deveria ter perguntado primeiro, existe um plugin confiável que vai cuidar disso para mim? O que mais eu preciso saber sobre esse processo?

Notas - Nós já temos todos os certificados SSL, então é algo que eu não tenho que me preocupar. - O servidor está executando o linux (redhat) e o apache - O multisite está usando subdiretórios - Eu não sei muito mais, o servidor está fora da minha jurisdição

    
por rugbert 12.11.2015 / 22:55

5 respostas

1

Você pode executar um script para ATUALIZAR todos os URLs e guias para https, se desejar uma configuração limpa.

Mas também considere alternativas como:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.yoursite.com/$1 [R,L]
</IfModule>

Em wp-config.php para o backend:

define('FORCE_SSL_ADMIN', true);

Em wp-config.php para o frontend (ou execute um script UPDATE do banco de dados):

define('WP_HOME','https://example.com');
define('WP_SITEURL','https://example.com');

Você pode simplesmente executar um script para ATUALIZAR toda a URL do conteúdo wp_posts.

    
por The J 29.08.2016 / 14:23
0

Esse processo envolve, na verdade, a compra de um certificado de segurança e a sua aplicação ao servidor para seus sites. Isso, por sua vez, forçará todos os visitantes a uma conexão segura através do certificado apresentado pelo seu servidor. Esses certificados são chamados SSL Certs: enlace

    
por John Lucey 12.11.2015 / 23:05
0

Uma maneira possível de fazer essa modificação de dados é usar o WP-CLI no terminal.

Antes de tudo, você deve ter certeza de ter um backup e uma estratégia de restauração sólida no caso de algo dar errado. Você também deve testar este procedimento em um sistema local ou de teste com uma cópia do banco de dados ativo.

Os passos básicos são: iterar cada site da sua rede e substituir os URLs de cada site usando o WP-CLI. search-replace comando .

Aqui está uma frase de efeito:

for SITE in $(wp site list --field=url); do wp search-replace "{$SITE}" "${SITE/http:/https:}" --dry-run --precise --network --verbose; done

Vamos examinar isso:

for SITE in $(wp site list --field=url);

Esse inicia um loop para cada linha da saída do comando dentro de $() e escreve cada linha na variável $SITE .

$(wp site list --field=url)

Esse é o site list command do WP-CLI que fornece uma lista de todos os URLs do site em seu rede. Execute este comando unicamente, você provavelmente verá algo como:

http://your-site.tld/
http://your-site.tld/site2/
http://another-of.your-site.tld/
...

Agora

...); do

apenas iniciará a parte do loop interno.

O comando inner loop faz toda a mágica (eu divido em duas linhas usando \ para legibilidade):

wp search-replace "$SITE" "${SITE/http:/https:}" \
--dry-run --precise --network --verbose

Dizemos ao WP-CLI para pesquisar por $SITE (por exemplo, https://your-site.tld/ ) e substituir por uma versão ligeiramente modificada: ${SITE/http:/https:} . Esta é uma string bash que substitui a operação que substitui http: por https: . (Então, resolvendo as variáveis, o comando seria parecido com wp search-replace "http://your-site.tdl/" "https://your-site.tld/" ).

search-replace tem muitas opções possíveis que são descritas na documentação . No exemplo, usei estes:

--dry-run --precise --network --verbose

--dry-run e --verbose são claramente úteis para testar o comando.

--network aplica a operação de pesquisa e substituição também às tabelas da rede.

--precise diz ao WP-CLI para usar o PHP em vez do SQL para procurar e substituir os valores. Isso garante que os valores serializados não sejam corrompidos.

Finalmente, o loop é fechado com

; done

Deixe-me enfatizar novamente: teste isso profundamente antes de começar a usá-lo na produção. Você deve entender como funciona e o que o WP-CLI faz. Eu usei o WP-CLI antes para executar essas operações de pesquisa e substituição para migrar vários sites para outros nomes de domínio, mas não para alternar de http para https .

Pode haver alguns casos de borda: o WP-CLI ainda lê o wp-config.php e tenta encontrar uma "rede" correspondente no banco de dados usando as constantes em wp-config.php . Se você está manipulando um site (o banco de dados), mas não o outro (as constantes em wp-config.php ), você pode entrar em apuros. Mas, para o seu caso, acho que isso não será um problema, já que o WP normalmente depende de DOMAIN_CURRENT_SITE e PATH_CURRENT_SITE e eles não mudarão de qualquer maneira. Mas, novamente, teste este completo.

Com um pouco mais de bash magic, você também pode dividir esse loop em partes de 5 ou 10 sites e seguir passo a passo.

    
por David 04.08.2016 / 18:31
0

Para garantir que todos os seus sites usem HTTPS no seu post_content , você pode executar uma das duas opções:

1. Back-end: executar uma consulta SQL

Para garantir que todos os seus links HTTP estejam configurados como HTTPS, use a seguinte consulta SQL:

UPDATE wp_options SET option_value = replace(option_value, 'OLD_URL', 'NEW_URL') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'OLD_URL','NEW_URL');
UPDATE wp_posts SET post_content = replace(post_content, 'OLD_URL', 'NEW_URL');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'OLD_URL','NEW_URL');
  • OLD_URL será substituído por http://example.com (não HTTP)
  • NEW_URL será substituído por https://example.com (HTTPS)

Isso abrangerá o siteurl , home e todo o seu conteúdo no seu website para o novo HTTPS.

2. Frontend: use o Search & Substitua o plugin

Uma abordagem mais amigável é usar o Search & Substitua o plugin para substituir facilmente todas as tabelas que contenham o seu HTTP antigo e altere-as para um HTTPS. O processo é fácil de usar e você pode visualizar quais tabelas e linhas serão afetadas antes de aplicar essas alterações.

Avisar

Antes de aplicar qualquer alteração, acho que é desnecessário fazer um backup do seu banco de dados caso algo dê errado.

    
por Ethan Jinks O'Sullivan 13.08.2016 / 23:46
0

O HTTP é um protocolo padrão, que é usado pela maioria dos sites para lidar com as informações na web. Seu site está sendo executado em HTTPS sem qualquer mensagem de erro. Isso significa que seu certificado foi instalado corretamente. Você deve migrar todo o seu site de HTTP para HTTPS.

Saiba como mover o HTTP para HTTPS para o WordPress

    
por Harshita 09.09.2016 / 13:45