O proxy reverso Nginx não carregará sites HTTPS

2

Hoje foi a primeira vez que usei o Nginx. Eu configurei-o como um proxy reverso dedicado seguindo alguns guias. É isso que estou tentando recriar - link

Eu tenho isso funcionando bem com a porta 80, mas qualquer coisa carregada em HTTPS me dá erros sobre o conteúdo HTTP estar inseguro. Tentando carregar qualquer site HTTPS sobre o proxy reverso através da internet parece muito errado. Carregá-lo internamente funciona bem.

Exemplo - link - Esse é o console de administração do Wordpress, parece algo dos anos 90.

Abaixo está a configuração do nginx que estou usando -

server {
   listen 80;
   server_name domain1.com;
   location / {
      proxy_pass http://192.168.1.149/;
      proxy_set_header Host $host;
   }
}

# HTTPS server

server {
    listen 443 ssl;
    server_name domain1.com;

    error_log /tmp/error.log;

        ssl on;
    ssl_certificate_key /etc/nginx/ssl/server.key;
    ssl_certificate /etc/nginx/ssl/server.crt;


    location / {
        proxy_pass http://192.168.1.149/;
        proxy_set_header Host $host;
    }
}

Alguém pode me avisar sobre o que estou perdendo para fazer o HTTPS funcionar corretamente no proxy reverso?

    
por Ian 19.06.2014 / 00:16

2 respostas

2

Você não está sentindo falta de nada; você configurou o nginx corretamente.

O problema aqui é que o WordPress acha que deveria estar gerando links HTTP. Quando você tenta acessá-lo via HTTPS, ele ainda gera todos os seus links com http:// e, portanto, eles não podem ser carregados (sem carregar explicitamente conteúdo inseguro no navegador).

Existem plugins WordPress que converterão seu console de administração em https, se é isso que você está tentando fazer. Você também pode editar as Configurações gerais do seu blog e converter todo o site em https de maneira rápida e fácil, sem um plug-in.

    
por 19.06.2014 / 00:24
0

Se você puder pagar, tente criptografar novamente o tráfego:

location / {
    proxy_pass https://192.168.1.149/;
    proxy_set_header Host $host;
}

O appserver então estará ciente do SSL, obviamente.

Outra maneira é configurar uma porta alternativa do Apache, por exemplo,

location / {
    proxy_pass http://192.168.1.149:444/;
    proxy_set_header Host $host;
}

com um vhost que define sinalizadores apropriados para fazer com que o Wordpress / PHP acredite que a solicitação foi realmente criptografada, por exemplo

SetEnv SSL=on

Pode ser complicado pegar todas as configurações necessárias / suficientes.

    
por 19.06.2014 / 01:35