Nginx 对上游使用SSL链接
L96
双向认证SSL指令示列
对下游使用证书指令
| Syntax: | ssl_certificate |
|---|---|
| Default: | — |
| Context: | http, server |
| Syntax: | ssl_certificate_key |
|---|---|
| Default: | — |
| Context: | http, server |
代码示列 首先需要将 ngx_http_ssl_module编译进nginx 一般证书可以动态生成 详见 SSL证书生成方式
listen ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/shoppas.com.cn/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/shoppas.com.cn/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
如何验证下游证书
| Syntax: | ssl_client_certificate |
|---|---|
| Default: | — |
| Context: | http, server |
| Syntax: | ssl_verify_client |
|---|---|
| Default: |
ssl_verify_client off; |
| Context: | http, server |
如何对上游使用证书 如果需要链接上游 可以在location设置独立的证书
| Syntax: | proxy_ssl_certificate |
|---|---|
| Default: | — |
| Context: | http, server, location |
| Syntax: | proxy_ssl_certificate_key |
|---|---|
| Default: | — |
| Context: | http, server, location |
如何验证上游的证书
| Syntax: | proxy_ssl_trusted_certificate |
|---|---|
| Default: | — |
| Context: | http, server, location |
| Syntax: | proxy_ssl_verify |
|---|---|
| Default: |
proxy_ssl_verify off;
|
| Context: | http, server, location |
SSL模块提供的变量
- ssl_cipher : 本次通讯选用的安全套件
- ssl_ciphers : 客户端支持的所有安全套件
- ssl_protocal : 本次通讯选用的 TLS 版本
- ssl_curves:客户端支持的椭圆曲线
证书
- ssl_client_raw_cert: 原始客户端证书内容
- ssl_client_escaped_cert:返回客户端证书做urlencode编码后的内容
- ssl_client_cert:对客户端证书每一行内容前加tab制表符空白,增强可读性
- ssl_client_fingerprint:客户端证书的SHA1指纹
证书结构化信息
- ssl_server_name 通过TLS插件SNI获取到服务域名
- ssl_client_i_dn 依据RFC2253获取到证书issuer nd信息 如: CN=...,O=...,L=...,C=..,
- ssl_client_i_dn_legacy 依据RFC2253获取到证书issuer nd信息 如: /CN=.../O=.../L=.../C=...
- ssl_client_s_dn 依据RFC2253获取到证书subject dn信息
- ssl_client_s_dn_legacy 依据RFC2253获取到证书subject dn信息 格式不一样而已
证书有效期
- ssl_client_v_end 返回客户端正式的过期时间
- ssl_client_v_ramain 返回还有多少天客户端证书过期
- ssl_client_v_start 客户端证书颁发时间
链接有效性
ssl_client_serial 返回连接上客户端证书的序列号
ssl_early_data 在TLS1.3协议中使用early data且握手未完成返回1 否则返回空字符串
ssl_client_verify 如果验证失败为FAILED原因 如果没有验证证书则为NONE 验证成功为SUCCESS
ssl_session_id 已经建立连接的sessionId
ssl_session_reused 如果session被复用 则为r 否则为.
创建证书示列
创建根证书
创建CA私钥命令 : openssl genrsa -out ca.key 2048
创建CA公钥 :openssl req -new -x509 -days 3650 -key ca.key -out ca.crt //后面可能让输入很多选项 比如国家 城市 等
签发证书
创建私钥
openssl genrsa -out a.pem 1024 //创建证书a
openssl rsa -in a.pem -out a.key //创建a证书的公钥
生成签发请求
openssl req -new -key a.pem -out a.csr //针对a证书做签发
使用CA证书进行签发
openssl x509 -req -sha256 -in a.csr -CA ca.crt -CAKey ca.key -CAcreateserial -days 3650 -out a.crt //使用ca证书来签发a证书
验证签发证书是否正确
openssl verify -CAfile ca.crt a.crt
Nginx 对上游使用SSL链接的更多相关文章
- Ubuntu Nginx下配置网站ssl实现https访问
最近在看 HTTP权威指南 看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...
- Nginx集群之SSL证书的WebApi微服务
目录 1 大概思路... 1 2 Nginx集群之SSL证书的WebApi微服务... 1 3 HTTP与HTTPS(SSL协议)... 1 4 Ope ...
- Nginx集群之SSL证书的WebApi身份验证
目录 1 大概思路... 1 2 Nginx集群之SSL证书的WebApi身份验证... 1 3 AuthorizeAttribute类... 2 4 ...
- Nginx集群之SSL证书的WebApi令牌验证
目录 1 大概思路... 1 2 Nginx集群之SSL证书的WebApi令牌验证... 1 3 Openssl生成SSL证书... 2 4 编写.NE ...
- Linux下Nginx配置阿里云 SSL证书实现HTTPS访问
这篇文章主要介绍了nginx配置ssl证书实现https访问的示例 1.服务器系统:Centos 2. 阿里云申请SSL证书 选择“免费版DV SSL”,点击立即购买: 下载证书 列表中找到已签发的证 ...
- nginx:[emerg]unknown directive "ssl"
nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:102 到解压的nginx目录 ...
- Nginx 接受上游缓存流程
L:101 这个指令主要是由上游服务器来决定是否缓存 详见博客Nginx 针对上游服务器缓存
- Nginx 当上游服务器返回失败时的处理办法
陶辉95课 Syntax: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 ...
- Linux 搭建Nginx并添加配置 SSL 证书
1. 安装准备 1.1 gcc安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: [root@nginx ~]# yum -y i ...
随机推荐
- 初窥RabbitMQ消息中间及SpringBoot整合
一:RabbitMQ简介 RabbitMQ介绍 RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用. 消息中间件最主要的作用是解耦,中间件最标准 ...
- ASP.NET Core依赖注入——依赖注入最佳实践
在这篇文章中,我们将深入研究.NET Core和ASP.NET Core MVC中的依赖注入,将介绍几乎所有可能的选项,依赖注入是ASP.Net Core的核心,我将分享在ASP.Net Core应用 ...
- [UWP]为附加属性和依赖属性自定义代码段(兼容UWP和WPF)
1. 前言 之前介绍过依赖属性和附加属性的代码段,这两个代码段我用了很多年,一直都帮了我很多.不过这两个代码段我也多年没修改过,Resharper老是提示我生成的代码可以修改,它这么有诚意,这次就只好 ...
- SQL Server(2000,2005,2008):恢复/回滚时间比预期长(译)
我已经讨论了各种确定恢复状态的方法,但是本周我参与了一个围绕回滚的有趣讨论.交易已经运行了14个小时,然后发出了KILL SPID.SPID进入回滚,并发生2天和4小时. 自然的问题是为什么不14小时 ...
- mysql面试题目1
有这样一个成绩表,学生A,B,C,三个人,考试科目分别为C(chinese),M(math),E(english) 求三门课成绩都大于80分的那个学生姓名: 即查询的方法可分为俩种:select na ...
- ES5与ES6的小差异
ES5与ES6的小差异 变量的定义 ES6与ES5的区别 ES5: <script> console.log(username); var username; var username = ...
- Servlet 使用ServletConfig对象来配置Servlet
ServletContext和ServletConfig的关联 相同点: 1.都可以用来配置Servlet 2.都可以写在web.xml中. 区别点: 1.ServletContext对象,对于所有的 ...
- Java Core - 创建对象的两种方式
一.通过new关键字创建对象 Hello hello = null; // 声明一个引用 hello = new Hello(); // 创建对象 以上两行代码相当于 Hello hello ...
- HDU 1089 到1096 a+b的输入输出练习
http://acm.hdu.edu.cn/showproblem.php?pid=1089 Problem Description Your task is to Calculate a + b.T ...
- Notepad++快捷使用
用Notepad++写代码,要是有一些重复的代码想copy一下有木有简单的方法呢,确实还是有的不过也不算太好用.主要是应用键盘上的 Home 键 和 End 键.鼠标光标停留在一行的某处,按 Home ...