HTTPS越来越普及了,大势所趋。
现在有免费的HTTPS证书可以用了,不用再交保护费了。
Nginx下配置HTTPS,很简单:
server {
listen 443;
# listen [::]:80 default_server;
server_name 雷哥的域名.net;
# root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
ssl on;
ssl_certificate /etc/nginx/conf.d/cert/雷哥的域名.net.pem;
ssl_certificate_key /etc/nginx/conf.d/cert/雷哥的域名.net.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;
index index.jsp index.html;
location / {
proxy_pass http://127.0.0.1:8091;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# https:/www to https
server {
listen 443;
server_name www.雷哥的域名.net;
return 301 $scheme://雷哥的域名.net$request_uri;
}
# http:/www. to http
server {
listen 80;
server_name www.雷哥的域名.net,雷哥的域名.net;
return 301 https://雷哥的域名.net$request_uri;
}
解读
监听443端口,响应HTTPS请求。
为了网站域名简单直观,且访问统一。
对外统一域名:https://aa.com,不带www。
同时,
https://www.aa.com,http://www.aa.com,http://aa.com 统一跳转到 https 非fwww。
证书
ssl_certificate /etc/nginx/conf.d/cert/雷哥的域名.net.pem;
ssl_certificate_key /etc/nginx/conf.d/cert/雷哥的域名.net.key;
pem是啥来着,OpenSSL 使用 PEM 文件格式存储证书和密钥。
.key 是 私钥