Project

General

Profile

Wiki » History » Version 7

Gareth Eaton, 03/07/2023 06:21 AM

1 1 Gareth Eaton
h1. Wiki
2
3
4
If WordPress is unable to determine when requests are made over HTTPS, causing it to be incapable of serving HTTPS-specific content. 
5
Web browsers nowadays usually prohibit loading insecure content within pages that are accessed via HTTPS, which results in predictable issues.
6
7 2 Gareth Eaton
See [[SSL Insecure Content Fixer]]
8
9 3 Gareth Eaton
The the fix is in wp-config.php add the following, you must place that code BEFORE anything else, except for the beginning PHP tag.
10 1 Gareth Eaton
11
<pre>
12
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
13
  $_SERVER['HTTPS'] = 'on';
14
} 
15
</pre>
16
17
And in the NGINX config Add,
18
19
<pre>
20
server {
21
    listen 443;
22
    server_name blog.ldev.app;
23
    ssl on;     ssl_certificate /etc/pve/local/nginx/ldev-ssl.pem;
24
    ssl_certificate_key /etc/pve/local/nginx/ldev-ssl.key;
25
    proxy_redirect off;
26
    location / {
27
        proxy_set_header        Host $host:$server_port;
28
        proxy_set_header        X-Real-IP $remote_addr;
29
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
30
        proxy_set_header        X-Forwarded-Proto $scheme;
31
        proxy_pass http://*YOUR IP AND PORT*;
32
    }
33
}
34
</pre>
35
36
If your using Nginx Proxy Manager point to the root dir in Custom locations, and in the Advanced tab, use the Custom Nginx Configuration below 
37
<pre>
38 4 Gareth Eaton
proxy_set_header Host $host;
39
proxy_set_header X-Real-IP $remote_addr;
40
proxy_set_header X-Forwarded-For $remote_addr;
41
proxy_set_header X-Forwarded-Proto $scheme;
42
 proxy_set_header X-Forwarded-Host $host;
43
proxy_set_header X-Forwarded-Server $host;
44
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
45 1 Gareth Eaton
</pre>
46 4 Gareth Eaton
47
Here's what each directive does:
48
49 7 Gareth Eaton
* *proxy_set_header Host $host;*  Sets the value of the "Host" header to the value of the requested server name. This header is important for web servers to correctly route the incoming request to the correct virtual host.
50 4 Gareth Eaton
51 7 Gareth Eaton
* *proxy_set_header X-Real-IP $remote_addr;*  Sets the value of the "X-Real-IP" header to the IP address of the client that initiated the request. This header is commonly used by application servers to identify the IP address of the client.
52 4 Gareth Eaton
53 7 Gareth Eaton
* *proxy_set_header X-Forwarded-For $remote_addr;*  Sets the value of the "X-Forwarded-For" header to the IP address of the client that initiated the request. This header is commonly used by web servers to log the IP addresses of the clients that accessed the server through a proxy.
54 4 Gareth Eaton
55 7 Gareth Eaton
* *proxy_set_header X-Forwarded-Proto $scheme;*  Sets the value of the "X-Forwarded-Proto" header to either "http" or "https", depending on the protocol used by the client to access the reverse proxy server. This header is important for application servers to generate correct links and redirects.
56 4 Gareth Eaton
57 7 Gareth Eaton
* *proxy_set_header X-Forwarded-Host $host;*  Sets the value of the "X-Forwarded-Host" header to the requested server name. This header is important for application servers that rely on the "Host" header to generate links and redirects.
58 4 Gareth Eaton
59 7 Gareth Eaton
* *proxy_set_header X-Forwarded-Server $host;*  Sets the value of the "X-Forwarded-Server" header to the requested server name. This header is important for application servers to identify the name of the reverse proxy server that forwarded the request.
60 4 Gareth Eaton
61 7 Gareth Eaton
* *proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;*  Sets the value of the "X-Forwarded-For" header to a comma-separated list of IP addresses. This directive appends the IP address of the proxy server to the existing value of the "X-Forwarded-For" header, creating a chain of IP addresses that the request passed through. This is useful for debugging and auditing purposes.