强制https安全访问的nginx配置记录
强制HTTPS安全访问
在搭建个人网站访问时,一开始未设置ssl+http的https安全访问模式,而是通过http访问,但当域名注册及网站备案成功后,则存在以下三个风险:
- 数据被监听窃取:通过软件抓包,可以看到请求的内容
- 数据被篡改: 请求的数据被修改
- 中间人重放攻击:数据被中间人监听到,再次发送给服务器
HTTPS是HTTP的基础上加入SSL,通过传输加密和身份认证保证了数据传输过程的安全性。
强制HTTPS访问的方法也有多种:
- 可在页面中添加JS脚本
- 在后端程序中添加重定向
- 通过Web服务器实现跳转
- Nginx支持rewrite功能
在这里我是使用了nginx的方式,通过修改nginx配置来达到强制https访问的形式,在配置文件server中增加return 301 https://$host$request_uri;
,即可将默认80端口的请求重定向为 HTTPS
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
# SSL配置,填写你得到的ssl证书和key,此处我将两个文件放在nginx配置目录下
ssl_certificate edicaran.cafe_bundle.crt;
ssl_certificate_key edicaran.cafe.key;
server {
listen 443 ssl;
#填写绑定证书的域名
server_name edicaran.cafe;
#证书文件名称
ssl_certificate edicaran.cafe_bundle.crt;
#私钥文件名称
ssl_certificate_key edicaran.cafe.key;
ssl_session_timeout 5m;
# ssl密钥,此处自填
ssl_ciphers XXXXXXXXXXXXXXXXXX;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
# 网站根目录、主页目录等,下为例子
root /typecho/index;
include /etc/nginx/default.d/*.conf;
# PHP页面访问
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
client_max_body_size 20m;
fastcgi_connect_timeout 30s;
fastcgi_send_timeout 30s;
fastcgi_read_timeout 30s;
fastcgi_intercept_errors on;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name edicaran.cafe;
return 301 https://$host$request_uri;
}
}
Edicaran
“我希望自己也是一颗星星。如果我会发光,就不必害怕黑暗。如果我自己是那么美好,那么一切恐惧就可以烟消云散。于是我开始存下了一点希望——如果我能做到,那么我就战胜了寂寞的命运。”
版权属于:
汐書Café&Bookstore 的博客
本文链接:
https://edicaran.cafe/index.php/archives/39/
作品采用:
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可