Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)
2017-09-04 11:07
886 查看
准备工作
1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796.html)
2.证书颁发机构(CA)颁发的有效证书,其中我们需要两个文件,一个是 .key文件(私钥),另一个是 .crt或.pem文件(公钥)
核心配置
• 通过指定由受信任的证书颁发机构(CA)颁发的有效证书,将服务器配置为侦听端口上的HTTPS流量。
• 通过配置nginx.conf文件来加强安全性。示例包括选择更强大的密码,并将所有流量通过HTTP重定向到HTTPS。
• 添加
HTTP Strict-Transport-Security(HSTS)头部确保客户端所做的所有后续请求仅通过HTTPS。
nginx配置ssl,需要确保nginx包含相应的模块--with-http_ssl_module
查看nginx安装参数是否已经包含此模块,如果未包含请先安装此模块
nginx -V
添加/etc/nginx/proxy.conf配置文件:
vi etc/nginx/proxy.conf
proxy_redirect off; proxy_set_header Host $host; 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 $scheme; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k;
编辑/etc/nginx/nginx.conf配置文件。配置主要包含两个部分
http和
server。(如果有同学是配置在conf.d下的default.conf,可以将其备份或删除)
vi /etc/nginx/nginx.conf
http { include /etc/nginx/proxy.conf; limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s; server_tokens off; sendfile on; keepalive_timeout 29; # Adjust to the lowest possible value that makes sense for your use case. client_body_timeout 10; client_header_timeout 10; send_timeout 10; upstream hellomvc{ server localhost:5000; } server { listen *:80; add_header Strict-Transport-Security max-age=15768000; return 301 https://$host$request_uri; } server { listen *:443 ssl; server_name example.com; ssl_certificate /etc/ssl/certs/testCert.crt; ssl_certificate_key /etc/ssl/certs/testCert.key; ssl_protocols TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_ecdh_curve secp384r1; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_stapling on; #ensure your cert is capable ssl_stapling_verify on; #ensure your cert is capable add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; #Redirects all traffic location / { proxy_pass http://hellomvc; limit_req zone=one burst=10; } } }
有几处需要更改
• server_name改成你的域名=申请证书绑定的域名
• ssl_certificate改成你的公钥路径
• ssl_certificate_key改成你的私钥路径
一些安全配置
防止Clickjacking(点击劫持),Clickjacking是一种恶意技术来收集受感染的用户的点击。劫持受害者(访问者)点击感染的网站,使用X-FRAME-OPTIONS。
编辑nginx.conf文件:vi /etc/nginx/nginx.conf
将配置中的 add_header X-Frame-Options DENY; 更改为 add_header X-Frame-Options SAMEORIGIN;
重新加载nginx
service nginx reload
MIME类型的嗅探,此标头防止大多数浏览器从声明的内容类型中嗅探响应,因为标头指示浏览器不要覆盖响应内容类型,使用nosniff
选项
编辑nginx.conf文件:vi /etc/nginx/nginx.conf
添加行 add_header X-Content-Type-Options nosniff;
上文的nginx.conf已配置好此标头,保存文件,重新启动Nginx
相关文章推荐
- 详解nginx使用ssl模块配置支持HTTPS访问
- nginx使用ssl模块配置支持HTTPS访问
- nginx使用ssl模块配置支持HTTPS访问
- CentOS7 配置Nginx支持HTTPS访问的实现方案
- nginx使用ssl模块配置支持HTTPS访问的方法
- nginx使用ssl模块配置支持HTTPS访问【解决ssl错误】
- nginx使用ssl模块配置支持HTTPS访问 AND 开启gzip
- nginx配置免费的ssl证书,支持https安全访问
- nginx使用ssl模块配置HTTPS支持
- Ubuntu Nginx下配置网站ssl实现https访问
- nginx使用ssl模块配置HTTPS支持
- nginx使用ssl模块配置HTTPS支持
- centos6.5直接yum安装nginx,并且支持php访问的配置
- nginx使用ssl模块配置HTTPS支持
- Centos6.3下Apache配置基于加密的认证https加密证书访问
- Nginx下配置HTTPS(SSL)安全站点
- nginx使用ssl模块配置HTTPS支持
- nginx配置SSL的https访问
- CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问
- nginx 配置 ssl 模块支持 https