Nginx 構成 - SSL
SSL証明書を準備する
Alibaba Cloud コンソールから無料の証明書を直接申請することもできます (年間 20 個、それぞれ 1 年間の有効期間があります)、
または自己署名証明書を使用することもできます。Nginxは、openssl 自己署名証明書を介して HTTPS にアクセスし、安全でないアラームを報告する問題を解決します
構成例
upstream tomcatserver {
server 127.0.0.1:8801 max_fails=3 fail_timeout=3s;
server 127.0.0.1:8802 max_fails=3 fail_timeout=3s;
}
server {
listen 8888 ssl;
server_name localhost;
ssl_certificate /usr/local/nginx/ssl/nginx.pem;
ssl_certificate_key /usr/local/nginx/ssl/nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://tomcatserver/;
client_max_body_size 500m;
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http:// https://;
}
}
https にも移行するように必須の http アクセスを構成する
設定後、https を介した通常のアクセス、http アクセス エラーは次のとおりです:
400 Bad Request
プレーン HTTP リクエストが HTTPS ポートに送信されました。
これは 497 エラーが原因です。次のように構成を追加して http アクセスを https に強制し、
error_page 497 301 https://$http_host$request_uri;
497、301 およびその他のエラー コードを https にリダイレクトします。
upstream tomcatserver {
server 127.0.0.1:8801 max_fails=3 fail_timeout=3s;
server 127.0.0.1:8802 max_fails=3 fail_timeout=3s;
}
server {
listen 8888 ssl;
server_name localhost;
ssl_certificate /usr/local/nginx/ssl/nginx.pem;
ssl_certificate_key /usr/local/nginx/ssl/nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
error_page 497 301 https://$http_host$request_uri;
location / {
proxy_pass http://tomcatserver/;
client_max_body_size 500m;
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http:// https://;
}
}