1. 思路
Nginx HTTPS 配置分四步进行:
- 监听 80 端口,将 http://www.ilaoniu.cn 和 http://ilaoniu.cn 都重定向到 https://www.ilaoniu.cn(一般使用 301,保险起见,也可以使用 302 临时重定向);
- 监听 443 端口,将 https://ilaoniu.cn 重定向到 https://www.ilaoniu.cn;
- 监听 443 端口,处理来自 https://www.ilaoniu.cn 的请求;
- 更新站点 SSL 证书自动续期根路径。
2. 代码
代码如下:
/usr/local/nginx/conf/vhost/www.ilaoniu.cn.conf
server
{
listen 80;
#listen [::]:80;
server_name www.ilaoniu.cn ilaoniu.cn;
return 301 https://$host$request_uri;
}
server
{
listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name ilaoniu.cn;
ssl_certificate /usr/local/nginx/cert/www.ilaoniu.cn/cert.pem;
ssl_certificate_key /usr/local/nginx/cert/www.ilaoniu.cn/cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_session_cache builtin:1000 shared:SSL:10m;
# openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
return 301 https://www.ilaoniu.cn$request_uri;
}
server
{
listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name www.ilaoniu.cn;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.ilaoniu.cn/current/public;
ssl_certificate /usr/local/nginx/cert/www.ilaoniu.cn/cert.pem;
ssl_certificate_key /usr/local/nginx/cert/www.ilaoniu.cn/cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_session_cache builtin:1000 shared:SSL:10m;
# openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
include rewrite/laravel.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/www.ilaoniu.cn.log;
}
/usr/local/nginx/conf/ssl/www.ilaoniu.cn
# Le_Webroot='/home/wwwroot/www.ilaoniu.cn'
# 如果使用了 rewrite,更新站点 SSL 证书根目录
Le_Webroot='/home/wwwroot/www.ilaoniu.cn/current/public'