nginx 根证书 服务器证书,Nginx双向证书校验(服务器验证客户端证书)

1、创建Root CA私钥

openssl genrsa -out root-ca.key 1024

2、创建Root CA证书请求

openssl req -new -out root-ca.csr -key root-ca.key

3、签发Root CA根证书

openssl x509 -req -in root-ca.csr -out root-ca.crt -signkey root-ca.key -CAcreateserial -days 3650

5、生成服务器私钥

openssl genrsa -out server.key 2048

6、生成服务器证书签名请求

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

Common Name注意使用服务器的域名

7、使用Root CA签发服务器证书(Root CA证书、Root CA私钥、服务器CSR)

openssl x509 -req -in server.csr -out server.crt -CA root-ca.crt -CAkey root-ca.key -CAcreateserial -days 3650

8、生成客户端私钥

openssl genrsa -out client.key 2048

9、生成客户端证书签名请求

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

10、签发客户端证书(Root CA证书、Root CA私钥、服务器CSRc)

openssl x509 -req -in client.csr -out client.crt -CA root-ca.crt -CAkey root-ca.key -CAcreateserial -days 3650

11、客户端证书转为p12格式(p12格式才能导入浏览器)

openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

全过程:

538320ae433dfa3c603789d6aff0268b.png

Nginx验证客户端证书(使用OpenSSL生成自签名证书)

然后配置Nginx:

server

{

listen 11111;

server_name *.*.com;

ssl on;

ssl_certificate /root/ssl-cert/server.crt;

ssl_certificate_key /root/ssl-cert/server.key;

ssl_verify_client on;

ssl_client_certificate /root/ssl-cert/root-ca.crt;

location / {

client_max_body_size 10M;

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Real-IP $remote_addr;

proxy_ssl_verify off;

proxy_pass http://172.*.*.*:8080/;

proxy_redirect default;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

server

{

listen11111;

server_name  *.*.com;

sslon;

ssl_certificate/root/ssl-cert/server.crt;

ssl_certificate_key/root/ssl-cert/server.key;

ssl_verify_clienton;

ssl_client_certificate/root/ssl-cert/root-ca.crt;

location/{

client_max_body_size10M;

proxy_set_headerX-Forwarded-Host$host;

proxy_set_headerX-Forwarded-Server$host;

proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;

proxy_set_headerX-Real-IP$remote_addr;

proxy_ssl_verifyoff;

proxy_passhttp://172.*.*.*:8080/;

proxy_redirectdefault;

}

}

此时若不设置客户端证书访问会报错“No required SSL certificate was sent”,我们可以先使用curl进行验证(–insecure标识忽略服务器端证书校验,否则自签名证书会报错):

dc3698e2ddbe16c23f9679a3aca09494.png

curl使用客户端证书

如果是通过Chrome访问则是:

a2156619139766cdfe8cf07d7e69d58b.png

No required SSL certificate was sent

此时我们在Chrome中导入客户端证书,设置-高级-管理证书:

710e2d1233ea47793d86e18a66ae30d8.png

Chrome导入客户端证书0

然后将其导入“个人”:

179340b37332f22177f3ff2673778b94.png

Chrome导入客户端证书1

并在“高级”中勾选“客户端身份验证”的用途:

df004099a68733f529d958a16851555a.png

Chrome导入客户端证书2

然后重启Chrome,再次访问时将被提示选择证书:

90c6685abaeb6e725a58e5c47279b1bd.png

Chrome选择客户端证书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移动app测试的多样性_做移动APP功能测试,这些因素你得都考虑到~

对于刚入行的测试新手来说,无论是做手动测试还是自动化测试,前期都避免不了学习前人经验,从而尽可能减少自己的漏测问题。作为一个过来人,今天,我就将自己的移动APP功能测试分享给大家,希望对新手有一定帮助…

pytorch dropout_PyTorch初探MNIST数据集

前言:本文主要描述了如何使用现在热度和关注度比较高的Pytorch(深度学习框架)构建一个简单的卷积神经网络,并对MNIST数据集进行了训练和测试。MNIST数据集是一个28*28的手写数字图片集合,使用测试集来验证训练出的模型对手写数字的识别准确率…

DQL查询语句内容整理

select * from t_hq_ryxx;select bianh,xingm from t_hq_ryxx;--为字段名定义别名 select bianh as 编号,xingm as 姓名 from t_hq_ryxx;select bianh 编号 from t_hq_ryxx;select bianh || xingm as 编号和姓名 from t_hq_ryxx;select bianh as bh, t.* from t_hq_ryxx t ord…

saphana服务器硬件评估,华为SAP HANA一体机:你身边的数据计算专家

​ 华为服务器高级营销经理 谭鑫/文​在当今数字经济时代,如何将数据快速变现为价值资产是很多企业追求的目标。借助SAPHANA平台方案与技术,可以将数据处理化繁为简,及时汲取价值信息,为企业的业务决策提供数据参考,从…

verilog设置24进制计数器_阅读笔记:《Verilog HDL入门》第3章 Verilog语言要素

3.1标识符1.Verilog中的Identifier是由任意字母、数字、下划线和$符号组成的,第一个字符必须是字母或者下划线。区分大小写。2.Escaped Identifier是为了解决简单标识符不能以数字和$符号开头的缺点。如下所示:3.关键字。我的理解是保留字包括关键字&…

linux中python安装_linux环境下的python安装过程图解(含setuptools)

这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装。一、下载python源码包打开ubuntu下的shell终端,通过wget命令下载python源码包,如下图所示:将python-2.7.3.tgz下载至/opt…

锋利的jQuery--jQuery与DOM对象的互相转换,DOM的三种操作(读书笔记一)

1.jQuery对象就是通过jQuery包装DOM对象后产生的对象。2.jQuery对象和DOM对象的相互转换。良好的书写风格&#xff1a;var $input$("input")jQuery获取的对象在变量前面加上$。<1>jQUery对象转成DOM对象,两种方法&#xff1a;[index]和get(index)a:var $cr$(&q…

网站显示不正常服务器怎么弄,你真的知道网站出现收录不正常的原因是什么吗...

当一个新网站构建起来时&#xff0c;每天所担心的就是一个收录量。当你偶然看到收录减少时&#xff0c;不免心有所寒。不知道怎么“得罪”蜘蛛大哥了&#xff0c;发生了什么事把收录量给“没收”了。作为SEOer&#xff0c;我们知道在搜索引擎蜘蛛的心里内容的质量占有很大比重&…

自定义标签 (choose)

因为有3个标签,所以写3个标签处理器类 1.ChooseTag public class ChooseTag extends SimpleTagSupport {  //定义一个标记,用于控制跳转去向.public Boolean tag true;public Boolean getTag() {return tag;}public void setTag(Boolean tag) {this.tag tag;}Overridepubli…

计算机考上研究生暑假去哪里实习_浅谈化工与计算机行业

本人化工专业&#xff0c;毕业转行计算机。结合四年化工的学习以及互联网行业实习工作的经历&#xff0c;浅谈一下这两个行业。大二暑假到连云港一家民营炼化企业参观实习。该家企业给出的工资是三千五&#xff0c;四班两倒&#xff0c;可以住连云港的人才公寓&#xff0c;上下…

ajax status php,解决laravel 出现ajax请求419(unknown status)的问题

如下所示&#xff1a;这个是因为laravel自带csrf验证的问题解决方法方法一&#xff1a;去关掉laravel的csrf验证&#xff0c;但这个人不建议&#xff0c;方法也不写出来了。方法二&#xff1a;把该接口写到api.php上就好了方法三&#xff1a;首先在页面加上然后请求的在header里…

string 转比较运算符_运算符

1、概述算术运算符 - * /基本运算算术运算符%取模&#xff0c;取余数&#xff0c;计算整除算术运算符 --自增 自减比较运算符 !相等比较 不等比较逻辑运算符&& &逻辑与 短路与&#xff08;同真为真&#xff09;逻辑运算符|| |逻辑或 短路或&#xff08;一真则真&am…

神舟战神换cpu教程_神舟将十代i5称为“神U出世”?聊聊到底有哪些优势

在各个品牌大力的宣传之下&#xff0c;消费者对于笔记本电脑乃至各种数码硬件的要求都越来越高。既要好的处理器、显卡等性能配置&#xff0c;又要好的屏幕&#xff0c;甚至还得低定价&#xff0c;这就产生一种鱼与熊掌不可兼得的感觉了。就在今年的表白日&#xff0c;神舟电脑…

Oracle数据库更新时间的SQL语句

---Oracle数据库更新时间字段数据时的sql语句---格式化时间插入update t_user u set u.namepipi,u.modifytimeto_date(2015-10-07 00:00:00,YYYY-MM-DD HH24:MI:SS) where u.uid 11111---使用数据库系统当前时间update t_user u set u.namepipi,u.modifytimesysdate where u.u…

服务器系统杀毒系统崩溃怎么恢复,系统崩溃是什么原因导致的

大家在使用电脑的时候&#xff0c;经常都是需要安装一些软件和其他东西的。但是在安装软件的时候&#xff0c;很容易让一些病毒侵入电脑。一旦病毒侵入了电脑&#xff0c;就很容易让电脑系统崩溃。那么系统崩溃是什么原因导致的呢&#xff1f;下面就来告诉大家系统崩溃的原因及…

python argument list too long_间歇“OSError:[Errno 7]参数列表太长”,命令短(~125个字符)...

在Linux上的apache2mod_wsgi下运行的代码有时会产生以下输出。在notes.pycmd_list [abc_generate_pdf,--cdb-url-prefix, model.config(cdb_url_prefix),--request-cid, request_cid,]log.info("About to run: {!r}".format(cmd_list))subprocess.Popen(cmd_list)..…

atom配置python环境_python与excel有段情之二:python的安装和环境配置

索引python与excel有段情之一&#xff1a;前述python与excel有段情之二&#xff1a;python的安装和环境配置python与excel有段情之三&#xff1a;python编程前的准备工作和基本概念python与excel有段情之四&#xff1a;案例1.把多excel表抽数生成新excel表python与excel有段情之…

Scrapy--1安装和运行

1.Scrapy安装问题 一开始是按照官方文档上直接用pip安装的&#xff0c;创建项目的时候并没有报错&#xff0c; 然而在运行 scrapy crawl dmoz 的时候错误百粗/(ㄒoㄒ)/~~比如&#xff1a; ImportError: No module named _cffi_backend Unhandled error in Deferred 等等,发现是…

x86服务器当虚拟化的存储,龙存科技-软件定义数据中心产品提供商

一、应用背景服务器虚拟化技术是云计算的核心技术&#xff0c;是将系统进行虚拟化应用于服务器之上的技术。面向应用集中化处理&#xff0c;能最大的程度上利用硬件资源&#xff0c;并且实现灵活分配。虚拟化技术是将计算机底层的硬件功能的模拟&#xff0c;需要复杂的语句和机…

mysql 参照完整性规则_mysql参照完整性

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼MYSQL支持数据库的参照完整性约束吗&#xff1f;有四个表&#xff1a;表一的主键是的表二外键表二的主键是表三的外键表三的主键是表四的外键请问&#xff1a;如果&#xff1a;删除表一表2 3 4 会自动删除吗&#xff1f;----------…