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,我们该怎么办呢?我们可以在服务器中生成自己的证书,当然这个证书只能是用在测试环境中,因为他们没有经过第三方的认证. 下面是配置的过 ...
最新文章
- 程序安装包制作工具 v1.0官方版
- Universal-Image-Loader 示例 工具
- [转]实现Python HTTP服务方法大总结
- Nginx负载均衡配置实例详解(转)
- html文件上传协议,HTTP 上传文件的协议格式
- struts的国际化
- python-工具-pycharm的基本操作
- Oracle数据库安装图解
- http://localhost:9000/application.pac问题解决!
- acl在内核里的位置_在Linux中使用ACL(访问控制列表)保护文件/目录
- [转载] 【python】内置函数 slice()
- SPSS入门教程——如何分析两个变量之间的关联度?
- java文件下载文件损坏_java上传并下载以及解压zip文件有时会报文件被损坏错误分析以及解决...
- CCNA(思科网络攻城狮) 滴水之力05
- 360全景视频panolens.js 实现代码
- 别拿学历说事,这些天王中学没毕业,最低的是成龙
- 将2到10这9个自然数填入图中9个圆圈中,每个数只能用一次,且使每一条直线上的三个数的和相同,则中间圆圈的数是(),对应的每一条直线上的三个数的和是()
- matlab: 计算程序运行时间
- java调用银海社保接口,银海医保接口调用演示程序
- [ Azure | Az-900 ] 基础知识点总结(二) - 核心组件服务
热门文章
- python大数据招聘信息_2017招聘大数据丨Python需求增速达174%,AI人才缺口超百万!...
- SylixOS网络性能测试
- Spring4-自动装配Beans-按属性的数据类型自动装配Bean
- math.floor实现四舍五入
- 深入浅出交换类排序算法(转)
- 联发科MT8377 MT8389 MT6589 MT6577等芯片详细解析
- 小学徒进阶系列—JVM对String的处理
- 数据结构预算法(六) 数组和矩阵(1)
- 云大计算机昆工,云南最好的7所大学,分3档!本地人青看中昆医大,外省更爱昆工!...
- webpack文件夹打包_webpack多入口文件页面打包详解