美文网首页经典好文
Nginx https服务(十)

Nginx https服务(十)

作者: andpy | 来源:发表于2018-05-25 09:14 被阅读46次

nginx https服务

  • http不安全,被中间人盗用,信息泄漏,内容劫持,篡改。
  • https 对传输的内容进行加密以及身份的验证

加密方式 对称加密:


image

非对称加密


image

https加密原理

  1. 发起ssl连接,非对称加密
  2. 服务端将公钥发送给客户端
  3. 客户端用公钥对对称加密的密码进行加密 发送给服务端
  4. 之后客户端和服务端进行对称密钥传输数据
“非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密
image

以上的传送方式对于 伪装程中间人(客户端,服务端)的还是可以劫持数据,所以就利用了CA签名证书
服务端发送给客服端的是CA签名证书,客服端对数字证书进行CA校验,校验成功,则利用公钥加密,校验失败,则停止回话

Nginx配置https

生成CA证书

//查看是否安装openssl
openssl version / rpm -qa|grep open 
//确认nginx是否编译安装了 --with-http_ssl_module
nginx -V
//进入到nginx.conf目录
cd /etc/nginx/
//创建目录并进入
mkdir ssl_key

//生成key密钥
openssl genrsa -idea -out applelife.key 1024
//之后提示输入密码,输入设置 需要自己记住,后面会用到

//生成证书签名请求文件(csr文件)
openssl req -new -key applelife.key -out applelife.csr
//输入上面设置的密码
//输入相关的信息 CN ,chongqing,chongqing,...
    
//最后的时候会要求输入一个密码,这个是在修改csr文件需要的,在不严格的情况下,可以为空   

//最后会有两个文件 applelife.key applelife.csr

//基于上面的两个文件,生成证书签名文件(CA文件)
//days 3650 签名证书的过期时间
openssl x509 -req -days 3650 -in applelife.csr -signkey applelife.key -out applelife.crt
//需要输入 key的密码

nginx配置

//语法 是否开启
Syntax: ss|on|off;
Default:ssl off;
Context:http,server

#证书文件
Syntax:ssl_certificate file;
Default:-
Context:http,server

#key文件
Syntax:ssl_certificate_key file;
Default:-
Context:http,server

//示例
server {
    ...
    listen 443;
    server_name www.applelife.com;
    ssl on;
    #证书文件
    ssl_certificate /etc/nginx/ssl_key/applelife.crt;
    #key文件
    ssl_certificate_key /etc/nginx/ssl_key/applelife.key;
    #测试验证key
    #ssl_certificate_key /etc/nginx/ssl_key/appleno.key;
    ...
    location / {
        ...
    }
}

其他命令

//停止 需要输入设置的key密码
nginx -s stop -c /etc/nginx/nginx.conf
//启动
nginx -c /etc/nginx/nginx.conf
//检查语法
nignx -tc /etc/nginx/nginx.cof
//查看端口是否启用
netstat -luntp |grep 443

注意

//验证的时候记得输入 https

配置苹果要求证书

  • 服务器所有的连接使用TLS1.2以上的版本(openssl1.0.2)
  • https证书必须使用SHA256以上的哈希算法签名
  • Https证书必须使用RSA 2048位 或ECC 256以上的公钥算法
  • 使用前向加密技术
//查看ssl版本
openssl version
//查看证书算法,位数
openssl x509 -noout -text -in ./applelife.crt

//直接使用key生成 crt证书,在这个过程中需要输入相关的信息即可
openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout applelife.key out applelife.crt

//之后修改nginx配置文件即可

//reload 服务
nginx -s reload -c /etc/nginx/nginx.conf

这种配置方式,在重启停止nginx不需要输入key的密码,因为在生成的时候配置了一个参数 -keyout 重新生成新的文件

生成没有保护码的key
//生成没有保护码 key 的方式
openssl rsa -in ./applelife.key -out ./applelife_nopass.key

Https优化

  • 激活keepalive长连接
  • 设置ssl session缓存
//示例

server {
    listen 443;
    server_name 192.33.2.1 applelife.com;

    #让长连接保持更长
    keepalive 100;
    ssl on;
    #设置缓存10M  大约可以存储 8000到10000 个会话
    ssl_session_cache shared:SSL:10m;
    #配置10分钟 session过期
    ssl_session_timeout  10m;       

    #证书文件
    ssl_certificate /etc/nginx/ssl_key/applelife.crt;
    #key文件
    ssl_certificate_key /etc/nginx/ssl_key/applelife.key;
    
}

相关文章

  • Nginx https服务(十)

    nginx https服务 http不安全,被中间人盗用,信息泄漏,内容劫持,篡改。 https 对传输的内容进行...

  • Nginx 配置https服务

    一、HTTPS 服务 二、生成秘钥和CA证书 生产环境上可以直接从第三方机构获取CA证书,跳过这一步。 步骤一:生...

  • nginx 配置 HTTPS 服务

    编译自:[configuring_https_servers][1][1]: http://nginx.org/e...

  • docker 下安装 nginx / apache / tomc

    安装 nginx 服务器 访问 nginx Tags | Docker Hub 可查看详情https://hub....

  • [Nginx]04 - 搭建https服务

    生成私钥和证书 在nginx根目录创建certs文件夹,在文件夹中打开git bash,因为需要使用oepnssl...

  • 宝塔nginx配置https服务

    nginx配置 在下面的目录上传证书文件/www/server/nginx/conf1_xxx.cn_bundle...

  • Nginx设置Https代理服务

    Http和Https HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TC...

  • Nginx转发 多级

    需求: A服务器的Nginx请求转发到B服务器的 Nginx进行处理,A服务器配置了https证书,B服务器只是配...

  • Docker 基础 - 3

    Web 服务器与应用 Nginx 我的Nginx Docker镜像[https://hub.docker.com/...

  • 阿里云https+nginx服务搭建

    原文地址:阿里云https+nginx服务搭建 本文不会介绍https相关知识,只是把我创建https服务的过程分...

网友评论

    本文标题:Nginx https服务(十)

    本文链接:https://www.haomeiwen.com/subject/mhkyjftx.html