Nginx https配置

75 篇文章 1 订阅
69 篇文章 2 订阅

超文本传输安全协议(Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

http协议缺点

  • 传输数据被中间人盗用,信息泄露
  • 数据内容劫持,篡改

1.对称加密和非对称加密

对称加密

明文数据在发送方经过加密算法加密发送给接收方,接收方收到密文在用密钥解密完成。发送方加密密钥和接收方解密密钥要相同,就是对称加密。

非对称加密

 

加密密钥和解密密钥不一样称为非对称加密(加密密钥称为公钥,解密密钥称为私钥)。

2.https加密协议原理

https同时用了对称加密和非对称加密。客户端发起ssl连接,服务向客户端返回公钥,客户端收到公钥,用公钥加密对称密码在发送个服务器(这个操作是非对称加密)。后面输出传输利用 对称加密来进行数据传输。

3.中间人攻击

针对SSL的中间人攻击方式主要有两类,分别是SSL劫持攻击和SSL剥离攻击

SSL劫持攻击

SSL劫持攻击即SSL证书欺骗攻击,攻击者为了获得HTTPS传输的明文数据,需要先将自己接入到客户端和目标网站之间;在传输过程中伪造服务器的证书,将服务器的公钥替换成自己的公钥,这样,中间人就可以得到明文传输带Key1、Key2和Pre-Master-Key,从而窃取客户端和服务端的通信数据 但是对于客户端来说,如果中间人伪造了证书,在校验证书过程中会提示证书错误,由用户选择继续操作还是返回,由于大多数用户的安全意识不强,会选择继续操作,此时,中间人就可以获取浏览器和服务器之间的通信数据

SSL剥离攻击

这种攻击方式也需要将攻击者设置为中间人,之后见HTTPS范文替换为HTTP返回给浏览器,而中间人和服务器之间仍然保持HTTPS服务器。由于HTTP是明文传输的,所以中间人可以获取客户端和服务器传输数据

4.证书和私钥的生成

注意:一般生成的文件放在/etc/nginx/ssl目录下,这是个好的习惯。

检查openssl

openssl version

输出OpenSSL 1.0.2k-fips 26 Jan 2017证明有openssl,如果没有需要安装

yum install openssl   #安装openssl
yum install openssl-devel  #安装openssl-devel

http_ssl_module

nginx -V

输出的编译参数有--with-http_ssl_module,nginx默认会编译进去,如果没有需要手动编译。

1.创建服务器证书密钥文件 server.key

openssl genrsa -des3 -out server.key 1024	

回车后输入密码,确认密码,自己随便写,但要记住。

2.创建服务器证书的申请文件 server.csr

openssl req -new -key server.key -out server.csr

输入的内容为:

最后完成后,输入ls查看在你当前文件/etc/nginx/ssl下有没有server.key,erver.csr这两个文件

3.备份一份服务器秘钥

cp server.key server.key.org

4.去除文件口令

openssl rsa -in server.key.org -out server.key

5.去除文件口令

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

5.配置教程

服务目录

/opt/app/code
|-index.html

/etc/nginx/conf.d
|-https.conf

index.html

https.conf

检测语法并重启

nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf

 

输入域名https://www.cajbdqn.com

6.苹果证书配置

配置苹果要求的证书

  • 服务器所有的连接使用TLS1.2以上版本(openssl 1.0.2)
  • HTTPS证书必须使用SHA2556以上哈希算法签名
  • HTTPS证书必须使用RSA 2048为或ECC 256位以上公钥算法
  • 使用向前加密技术

查看openssl版本

openssl version

openssl的版本要在1.2,如果不在1.2版本以上,需要升级。新建updata.sh

# 升级openssl 脚本
cd /opt/download
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar -zxvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
./config --prefix=/usr/local/openssl 
make && make install 
mv /usr/bin/openssl   /usr/bin/openssl.OFF 
mv /usr/include/openssl   /usr/include/openssl.OFF 
ln -s   /usr/local/openssl/bin/openssl   /usr/bin/openssl 
ln -s   /usr/local/openssl/include/openssl   /usr/include/openssl 
echo "/usr/local/openssl/lib"  >>/etc/ld.so.conf 
ldconfig -v
openssl version -a

执行

sh updata.sh

查看当前使用自签证书的类型

openssl x509 -noout -text -in ./server.crt

7.直接通过key来生成证书

在上面证书和私钥的生成生成顺序先生成server.key–>在生成server.csr–>最后生成server.crt,我们将直接通过key来生成crt

openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt

去掉密码保护码

openssl -in ./server.key -out ./server_nopas.key

8.https优化服务优化

激活keepalive长连接

打开长连接,一次连接如果可以处理更多的请求,建立握手次数变少,对服务端的性能提升

设置ssl session缓存

设置ssl session缓存把部分信息内容放在缓存,这样服务器处理资源cpu就会变少,就会变得更加快速

9.https配置session

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值