Como instalar um certificado SSL / TLS para WordPress com Apache usando um proxy reverso Nginx em um CentOS VPS

Introdução

O Nginx e o Apache são os servidores Web de código aberto mais populares, usados ​​até por sites geradores de grande tráfego. Neste tutorial, ilustramos como usar os dois servidores da Web, mas com diferentes funcionalidades. O servidor da web Apache executa o site WordPress atrás do servidor nginx (com certificado SSL instalado), que atua como um proxy reverso para o servidor apache. Nesse caso, o Nginx está sendo aplicado como Proxy Reverso, manipulando todas as Conexões SSL em nome do Apache, enquanto o Apache ainda permanece o servidor da web. Este é um dos muitos usos do Nginx como proxy reverso.


Portanto, todas as conexões de URL dos navegadores dos usuários acessam o servidor proxy reverso Nginx primeiro e são forçadas a estar no protocolo HTTPS usando o certificado SSL instalado do servidor. Em seguida, o Nginx encaminha todas as solicitações para o servidor Web Apache executando o site WordPress. Como resultado, é muito essencial configurar os dois servidores para escutar em portas diferentes para evitar conflitos.

>Neste tutorial, ilustramos como instalar o certificado SSL no site do proxy reverso Nginx para WordPress hospedado no servidor da web Apache.

Pré-requisitos

Supõe-se que o WordPress e o Apache foram instalados, configurados e funcionando bem em um servidor Linux CentOS 7.

Instalar & Configurar Nginx

Execute os comandos para instalar o servidor nginx

$ sudo yum instala o epel-release
$ sudo yum instala o nginx

Editar arquivo de configuração do apache

$ sudo vim /etc/httpd/conf/httpd.conf

Altere a porta de escuta para uma porta diferente (por exemplo, 8080) editando a linha da seguinte maneira.

Listen 8080

Isso evita que o nginx escute a mesma porta que o Apache, portanto, agora o nginx escuta a porta 80 enquanto o apache escuta a porta 8080.

Abra a porta 8080 no firewall:

$ sudo firewall-cmd –permanent –add-port = 8080 / tcp
$ sudo firewall-cmd –reload

Reinicie o serviço apache

$ sudo systemctl restart httpd

Começar & ativar nginx

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Confirme se o nginx está funcionando bem usando curl para mostrar seu nome e versão nos cabeçalhos HTTP

$ curl -I http: // localhost

Configurar o Nginx para SSL

Remova o comentário da seção inteira na parte do servidor https (ssl).

# Configurações para um servidor habilitado para TLS

Gere certificado SSL

Primeiro, crie os diretórios nginx e private da seguinte maneira

$ sudo mkdir -p / etc / pki / nginx / private

Em seguida, gere chaves:

$ sudo openssl req -x509 -nodes -sha256 -days 365 -newkey rsa: 2048 -keyout /etc/pki/nginx/private/server.key -out /etc/pki/nginx/server.crt

Nota especial: Verifique se a porta 443 é permitida pelo firewall da seguinte maneira:

$ sudo firewall-cmd –permanent –add-port = 443 / tcp
$ sudo firewall-cmd –reload

Edite o arquivo Rhe nginx.conf para permitir uma passagem de proxy reverso para o Apache

Sob a parte do servidor (http) – a primeira seção: Substitua a seção de localização pela seguinte.

local / {
try_files $ uri @apache;
}

location @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header esquema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

local ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header esquema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

localização ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header esquema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

localização ~ / \. {
negar tudo;
access_log off;
log_not_found off;
}

Sob a parte do servidor (https) – a segunda seção: Substitua a seção de localização pela seguinte.

local / {
try_files $ uri @apache;
}

location @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header esquema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

local ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header esquema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

localização ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header esquema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

localização ~ / \. {
negar tudo;
access_log off;
log_not_found off;
}

Acesse o site Wiki da Mozilla para obter os conjuntos de cifras recomendados> e cole os ciphersuites na seção de cifra na segunda seção do servidor (https).

ECDHE-ECDSA-AES256-GCM-SHA384 dos ssl_ciphers: ECDHE-RSDS-AAC256-GCM-SHA384: ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: ECDHE-ECDSA-AES12 RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA256 ‘;

Salve o arquivo:

Configurar o WordPress

Edite o arquivo wp-config para permitir o redirecionamento para https adicionando o código abaixo:

define (‘FORCE_SSL_ADMIN’, verdadeiro);
if (strpos ($ _ SERVER [‘HTTP_X_FORWARDED_PROTO’], ‘https’)! == false)
$ _SERVER [‘HTTPS’] = ‘ativado’;
$ sudo vim /var/www/html/wp-config.php

Salve o arquivo

Conceda permissões para conexões httpd e nginx via SELinux

$ sudo setsebool -P httpd_can_network_connect 1

Acesse o painel wp-admin do site

Definições > Geral, depois mude o "http" para "https" para ambos "Endereço WordPress (URL)" e "Endereço do site (URL)"

E salve as alterações

Forçar redirecionar todo o tráfego para https

Edite o nginx.conf adicionando a linha na seção do servidor http

retornar 301 https: // $ server_name $ request_uri;

Reinicie os serviços nginx e apache

$ sudo systemctl restart nginx httpd

Agora, temos um site WordPress com certificado SSL autoassinado, como mostrado abaixo:

https://35.225.251.235

Conclusão

Agora você tem um site WordPress totalmente funcional com certificado SSL. O servidor nginx, embora funcione como um proxy reverso, funciona de maneira transparente e transparente com o servidor da web Apache. Isso faz parecer que as solicitações estão sendo atendidas diretamente no servidor da web Apache. Na verdade, é uma das maneiras mais eficazes de proteger seu site e reduzir a vulnerabilidade contra hackers.

Se você tiver problemas, peça assistência ao serviço de suporte do seu host – ele deve ajudar. Se não puderem, o HostaAdvice pode recomendar os melhores provedores de hospedagem VPS, os melhores provedores de hospedagem WordPress e os melhores serviços de hospedagem Linux (dependendo do que você está procurando). As principais opções de cada categoria são conhecidas por fornecer excelente serviço e suporte ao cliente.

Confira estes 3 principais serviços de hospedagem WordPress:

FastComet

Preço inicial:
US $ 2,95


Confiabilidade
9,7


Preços
9,5


Amigo do usuário
9,7


Apoio, suporte
9,7


Recursos
9,6

Ler comentários

Visite FastComet

Hostinger

Preço inicial:
US $ 0,99


Confiabilidade
9,3


Preços
9,3


Amigo do usuário
9,4


Apoio, suporte
9,4


Recursos
9.2

Ler comentários

Visitar Hostinger

Hospedagem A2

Preço inicial:
US $ 3,92


Confiabilidade
9,3


Preços
9.0


Amigo do usuário
9,3


Apoio, suporte
9,3


Recursos
9,3

Ler comentários

Visite A2 Hosting

Artigos de instruções relacionados

  • Como configurar o Nginx como proxy reverso para Apache em um Ubuntu 16.04 VPS ou servidor dedicado
    especialista
  • Como configurar, vamos criptografar com o Nginx em um Ubuntu 18.04 VPS ou servidor dedicado
    intermediário
  • Como adicionar SSL grátis no WordPress usando o Let’s Encrypt
    intermediário
  • Como instalar o WordPress com Nginx & Redis
    novato
  • Como instalar o WordPress com Nginx & Redis em um VPS CentOS ou servidor dedicado
    intermediário
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map