Nginx - 將 HTTP 的網頁上線成 HTTPS.

以前就上線過 HTTPS, 但這次設定被其他環境干擾, 害我花了超出預期的時間.

前言

前陣子再協助朋友設定 NGINX 時, 發現手邊都沒有在做紀錄 HTTPS 的設定, 所以這次就來紀錄一下。

其實不難,只是擔心朋友針對機器在做轉 Port 的設定 .. 這樣就會讓我很頭痛了。

當然後面有解決, 但是花了超出預期的時間。

小提醒:下面的路徑都是絕對路徑,因為使用的是 Docker,所以路徑會有點不一樣。你可以依照自己的環境去做設定。

這邊就不特別說明 Docker 的設定及路徑怎麼查詢囉 !

設定檔案

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
server {
    # port
    listen 443 ssl;
    listen [::]:443 ssl;
    #
    server_name www.example.com;
    # ssl
    ssl_certificate /home/example/example.crt;
    ssl_certificate_key /home/example/example.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
        root /var/www/html/;
        index index.html;
    }

    location /config {
        root /var/www/html/;
        index config.json;
    }

    # error
    error_page   500 502 503 504  /50x.html;
}

server {
    # port
    listen 5000 ssl;
    listen [::]:5000 ssl;
    #
    server_name www.example.com;
    # ssl
    ssl_certificate /home/example/example.crt;
    ssl_certificate_key /home/example/example.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    # path
    location / {
        proxy_pass http://myip.com:8080;
        # proxy header
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
        #
        proxy_connect_timeout       300;
        proxy_send_timeout          300;
        proxy_read_timeout          300;
        send_timeout                300;
        keepalive_timeout 300s;
        client_body_timeout 300s;
   }
    # error
    error_page   500 502 503 504  /50x.html;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name www.example.com;
    return 301 https://www.example.com$request_uri;
}
Copyright © CHUN-YEN, CHEN
使用 Hugo 建立
主題 StackJimmy 設計