Nginx 下部署 HTTPS 与安全调优
什么是 HTTPS?#
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
更多基本介绍请查阅:
- 数字签名是什么?(图文并茂, 清晰易懂, 重点推荐)
- HTTPS on WIKI
- 密码学笔记
- SSL 与数字证书
- 另一个图文并茂的笔记, 供参考 --> 泛域名ssl证书搭建全攻略
需要弄清楚的几个问题:
- HTTPS 和 SSL 的关系与基本技术实现;
- SSL 证书的类型;
- 什么是证书颁发机构, 为什么会存在;
- 证书认证等级, DV, OV 和 EV 各自的意思;
- 什么是
泛域名 SSL 证书 (Wildcard Domain SSL Certificates)
操作步骤#
一个大概流程如下:
- 购买前准备 - 服务器生成 csr 和 key 文件;
- 购买证书 - 利用上面生成的 csr 文件去购买证书;
- 购买成功后的证书有两个, 一个是域名证书, 一个是链证书, 把他们俩按照顺序合并为 crt 文件;
- Nginx 下配置 key 和 crt 文件, 并做安全调优.
购买证书前的准备#
1. 生成证书 CSR 和 KEY#
mkdir -p /etc/nginx/ssl/phphub
cd /etc/nginx/ssl/phphub
2. 生成 orig 文件#
openssl genrsa -out phphub.orig 2048
3. 生成 csr 文件#
运行
openssl req -new -key phphub.orig -out phphub.csr
输出, 需要填写内容:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:BeiJing
Locality Name (eg, city) []:BeiJing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:The EST Group
Organizational Unit Name (eg, section) []:Dev
Common Name (e.g. server FQDN or YOUR name) []:*.phphub.org // ----------注意这个地方要认真填写
Email Address []: emailaddress @ gmail.comPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ----------注意不填写----------
An optional company name []: ----------注意不填写----------
4. 生成 private key 文件#
openssl rsa -in phphub.orig -out phphub.key
至此文件夹里面有 三个文件:
root@localhost:/etc/nginx/ssl/phphub# tree
.
├── ikbcity.csr
├── phphub.key
└── phphub.orig
购买证书#
购买细节这里省去, 需要注意的是要认准比较权威的认证机构购买...
购买成功后会给你发两个证书 server.crt 和 server.intermediate.crt, 生成最终的 server.chained.crt
cat server.crt server.intermediate.crt > phphub.crt
此文件就可以和上面生成的 key 文件一起用来配置 nginx 了:
ssl_certificate /etc/nginx/ssl/phphub/phphub.crt;
ssl_certificate_key /etc/nginx/ssl/phphub/phphub.key;
配置安全的 Ngxin#
链接:
- Best nginx configuration for security
- Nginx config on Gits
- Top 20 Nginx WebServer Best Security Practices
- SSL Server Test -- 安全测试工具
强制使用 HTTPS#
server {listen 80;listen 443 ssl;server_name example.com;if ($scheme = http) {return 301 https://$server_name$request_uri;}....
}
去除 Nginx 的 X-Powered-By
header#
fastcgi_hide_header X-Powered-By;
去除 nginx 版本#
server_tokens off;
不允许被 iframe 加载#
add_header X-Frame-Options SAMEORIGIN;
其他参照此 Gits: Nginx config on Gits
静态内容#
一般都会出现 cdn 服务器无法访问 https 源服务器的问题, 可以使用专门的域名 static.phphub.org
来解决, 此域名专门用来输送静态内容:
server {listen 80;server_name static.phphub.org;root /var/www/phphub/public;location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) {add_header Cache-Control public;add_header Cache-Control must-revalidate;expires 7d;}location / {deny all;}
}
结语#
可以利用 SSL Server Test -- 安全测试工具 去测试下你的 HTTPS 是否够安全.
附上 phphub 的 test
转载于:https://www.cnblogs.com/linkenpark/p/7283145.html
Nginx 下部署 HTTPS 与安全调优相关推荐
- nginx下部署vue项目
nginx下部署vue项目 今天要用到服务器nginx,还需要把自己的vue的项目部署到服务器上去所以就写一下记录下来. 首先要去nginx官网下下载nginx: 下载地址:https://ngin ...
- centos mysql2_centos7下在线安装mysqlMySQL内存调优
原文链接: MySQL Memory Allocation -- by Rick James 原文日期: Created 2010; Refreshed Oct, 2012, Jan, 2014 翻译 ...
- nginx下部署vue项目概览 - (资源篇)
相关博客: nginx下部署vue项目概览 这里使用的是百度云的服务器,CentOS7系统的 linux服务器用centos还是ubuntu系统_Linux nginx服务器搭建以及配置 nginx部 ...
- Nginx下的https配置
https: https(Secure Hypertext Transfer Protocol) 安全超文本传输协议 它是以安全为目标的http通道,即它是http的安全版,它使用安全套接字层(SSL ...
- java https 慢_jetty https慢怎么调优?
客户的一台机器,嵌入式jetty,写最简单的servlet @Override protected void doGet(HttpServletRequest req, HttpServletResp ...
- linux 下nginx应用场景的tcp内核调优
vim /etc/profile net.ipv4.tcp_syncookies=1--防范少量的syn*** net.ipv4.tcp_tw_reuse=1--开启重用 net.ipv4.tcp_t ...
- Tomcat是干嘛用的?企业级Tomcat部署实践及安全调优
1.1 Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人 ...
- 01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置
1.下载Nginx,进入Nginx下载地址:http://nginx.org/ 点击nginx-1.8.0,进入:http://nginx.org/en/download.html,下载文件: ...
- Nginx下配置Https,测试环境的完整过程
在本地的测试环境中,当我们没有https的证书时,又想使用https,我们该怎么办呢?我们可以在服务器中生成自己的证书,当然这个证书只能是用在测试环境中,因为他们没有经过第三方的认证. 下面是配置的过 ...
最新文章
- php和python web开发-Web开发应该学习php还是python
- spring boot : Invalid Keystore format Error 解决方法
- Document Builder: 如何分析rule执行逻辑
- 比double精度更高的数据类型_MATLAB中图像的数据类型
- 操作系统学习笔记-01-1.1课程概述
- 美国自称最安全密码:100万年才能破解,却被一位中国宝妈拿下
- gitglone 指定分支_安装说明 · harryxu/gitube Wiki · GitHub
- 【代码技巧】21个经典深度学习句间关系模型
- 如何成功发布一个MSMQ的Windows服务
- 最详细!!!软考:初级程序员—思维导图
- cad转dwf格式怎么转换?
- 黑月MySQL_易语言黑月编译器插件
- 怎么压缩解压打包文件???
- raid5换硬盘显示ready_服务器RAID磁盘坏道修复实战
- 网站调用百度地图展示位置,调用百度开放平台api 动态静态调用
- Longhorn 企业级云原生容器存储解决方案-部署篇
- 创建PHP测试页面,连接并查询MariaDB数据库
- CDH 端口未授权访问:hdfs-50070, yarn-8088, jetty漏洞修复
- mysql登录框万能密码_Sqli-LABS通关笔录-11[sql注入之万能密码以及登录框报错注入]...
- 刘强东割袍弃兄弟,马爸爸醉心 996