nginx配置https双向验证(ca机构证书+自签证书)
nginx配置https双向验证
服务端验证(ca机构证书)
客户端验证(服务器自签证书)
本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件

这两个文件用于做服务器https验证
配置如下:

自签证书步骤如下:
ca根证书生成
创建ca私钥
openssl genrsa -out ca.key
生成ca证书
openssl req -new -x509 -days -key ca.key -out ca.crt
客户端证书生成
创建客户端私钥
openssl genrsa -out client.pem
openssl rsa -in client.pem -out client.key
生成签发请求
openssl req -new -key client.pem -out client.csr
使用ca证书进行签发
openssl x509 -req -sha256 -extfile /etc/pki/tls/openssl.cnf -extensions v3_req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days -out client.crt
验证签发证书是否正确
[root@danny ca]# openssl verify -CAfile ca.crt client.crt
client.crt: OK
制作p12证书(导入浏览器)
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
操作结束后目录文件
[root@danny ca]# ls
ca.crt ca.key ca.pem ca.srl client.crt client.csr client.key client.p12 client.pem
验证,导出client.p12点击安装至浏览器,重启浏览器。验证过程截图如下:
未开启双向认证ssl_verify_client on时(客户端可以直接https访问)

开启ssl_verify_client on但是没有安装客户端证书时

安装证书并重启浏览器访问

https证书管理中可看到已导入

确认即可访问

补充1:如果使用ca机构颁发的证书ssl_certificate,ssl_certificate_key 使用ca机构颁发的证书,客户端证书ssl_client_certificate使用自己生成的证书即可。
补充2:在阿里云上申请的https证书的是pem格式,转成cer,crt
openssl x509 -outform der -in xxx.pem -out xxx.cer
openssl x509 -outform der -in xxx.pem -out xxx.crt
补充3:crt文件转换为pem文件
openssl x509 -in xxx.crt -out xxx.pem
补充4:生成安卓所有bks包(windos的jdk环境命令行,具体步骤可百度)
keytool -importcert -keystore client.bks -file client.crt -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
补充5:常见证书格式说明
PKCS#7:Cryptographic Message Syntax Standard PKCS#10:Certification Request Standard PKCS#12:Personal Information Exchange Syntax Standard X.509:是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure (PKI) 制定的 ITU-T X509 国际标准。 PKCS#7:常用的后缀是: .P7B .P7C .SPC PKCS#12:常用的后缀有: .P12 .PFX X.509:DER 编码(ASCII)的后缀是: .DER .CER .CRT X.509:PAM 编码(Base64)的后缀是: .PEM .CER .CRT .cer/.crt:是用于存放证书,它是2进制形式存放的,不含私钥。 .pem:跟crt/cer的区别是它以Ascii来表示。 pfx/p12:用于存放个人证书/私钥,他通常包含保护密码,2进制方式 p10:是证书请求 p7r:是CA对证书请求的回复,只用于导入 p7b:以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。
nginx配置https双向验证(ca机构证书+自签证书)的更多相关文章
- linux:Nginx+https双向验证(数字安全证书)
本文由邓亚运提供 Nginx+https双向验证 说明: 要想实现nginx的https,nginx必须启用http_ssl模块:在编译时加上--with-http_ssl_module参数就ok.另 ...
- nginx配置ssl双向验证 nginx https ssl证书配置
1.安装nginx 参考<nginx安装>:http://www.ttlsa.com/nginx/nginx-install-on-linux/ 如果你想在单IP/服务器上配置多个http ...
- Nginx配置https双向认证
1. 前期的准备工作: 安装openssl和nginx的https模块 cd ~/ mkdir ssl cd ssl mkdir demoCA cd demoCA mkdir newcert ...
- nginx 配置https并自签名证书
2016-10-28 转载请注明出处:http://daodaoliang.com/ 作者: daodaoliang 版本: V1.0.1 邮箱: daodaoliang@yeah.net 参考链接: ...
- 购买https证书以及nginx配置https
文章来源 运维公会:购买https证书以及nginx配置https 1.https的作用 https的全名是安全超文本传输协议,是在http的基础上增加了ssl加密协议.在信息传输的过程中,信息有可能 ...
- nginx配置https及Android客户端访问自签名证书
前一篇随笔通过keytool生成keystore并为tomcat配置https,这篇随笔记录如何给nginx配置https.如果nginx已配置https,则tomcat就不需要再配置https了.通 ...
- nginx配置https转发到tomcat(使用自签名的证书)
一.使用openSSL生成自签名的证书 1.生成RSA私钥 命令:openssl genrsa -des3 -out server.key 1024 说明:生成rsa私钥,des3算法,1024强度, ...
- 【Nginx(五)】Nginx配置Https证书
大致的流程如下 1.申请Https证书,绑定域名信息; 由于自己的服务器是腾讯云服务器, 这里就在腾讯云上申请SSL证书, 申请地址: https://console.cloud.tencent.co ...
- Java Https双向验证
CA: Certificate Authority,证书颁发机构 CA证书:证书颁发机构颁发的数字证书 参考资料 CA证书和TLS介绍 HTTPS原理和CA证书申请(满满的干货) 单向 / 双向认证 ...
随机推荐
- Java中的基本类型转换,数据溢出原理
java中的数据类型 java是一种强类型语言,在java中,数据类型主要有两大类,基本数据类型和引用数据类型,不同的数据类型有不同的数据存储方式和分配的内存大小. 基本数据类型中,各数据类型所表示的 ...
- 使用logdashboard进行可视化的日志追踪
本文源码在Github可以找到下载 LogDashboard 如果你还不了解LogDashboard请看这里. LogDashboard 1.1版本支持请求追踪,虽然目前版本还没有发布.不过这个功能可 ...
- MySQL via EF6 的试用报告
1.如何通过 EF6 来连接 MySQL? 2.如何通过 EF6 来实现 CRUD? 2.1.Create 添加 2.2.Retrieve 查询 2.3.Update 修改 2.4.Delete 删除 ...
- 开箱即用(out-of-box)的Redis序列号生成器,不用再写任何代码,你值得拥有
先看整体效果 把简单的东西“傻瓜化”是软件开发追求的目标之一.请看下图: 左边是在 application.yml 里配置了3个生成器,右边可以直接注入到代码中使用,注意,不用写任何代码.这酸爽. ...
- Python编程从入门到实践笔记——操作列表
Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...
- 浅谈SQL Server内部运行机制
对于已经很熟悉T-SQL的读者,或者对于较专业的DBA来说,逻辑的增删改查,或者较复杂的SQL语句,都是非常简单的,不存在任何挑战,不值得一提,那么,SQL的哪些方面是他们的挑战 或者软肋呢? 那就是 ...
- JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC
接上篇<JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP.IOC)>,了解了Spring的核心(AOP.IOC)后,我们再来学习与实践Maven.Sp ...
- CentOS 7.4 下 如何部署 AspNetCore 结合 consul
上篇我们讲到consul的概念,以及在WIN下如何使用:http://www.cnblogs.com/szlblog/p/9162557.html 步骤如下: 1.安装虚拟机VM 2.下载安装 Cen ...
- 杭电ACM2017--字符串统计
字符串统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- C# 利用键值对取代Switch...Case语句
swich....case 条件分支多了之后,会严重的破坏程序的美观性. 比如这个 上述代码是用于两个进程之间通信的代码,由于通信的枚举特别的多,所以case的分支特别的多.导致了代码的可读性,可维护 ...