nginx配置https双向验证

服务端验证(ca机构证书)

客户端验证(服务器自签证书)

本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件

这两个文件用于做服务器https验证

配置如下:

自签证书步骤如下:

ca根证书生成

创建ca私钥

openssl genrsa -out ca.key 2048

生成ca证书

openssl req -new -x509 -days 36500 -key ca.key -out ca.crt

客户端证书生成

创建客户端私钥

openssl genrsa -out client.pem 2048
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 36500 -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 StandardPKCS#10:Certification Request StandardPKCS#12:Personal Information Exchange Syntax StandardX.509:是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure (PKI) 制定的 ITU-T X509 国际标准。PKCS#7:常用的后缀是: .P7B .P7C .SPCPKCS#12:常用的后缀有: .P12 .PFXX.509:DER 编码(ASCII)的后缀是: .DER .CER .CRTX.509:PAM 编码(Base64)的后缀是: .PEM .CER .CRT.cer/.crt:是用于存放证书,它是2进制形式存放的,不含私钥。.pem:跟crt/cer的区别是它以Ascii来表示。pfx/p12:用于存放个人证书/私钥,他通常包含保护密码,2进制方式p10:是证书请求p7r:是CA对证书请求的回复,只用于导入p7b:以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。

转载于:https://www.cnblogs.com/dannylinux/p/10790772.html

nginx配置https双向验证(ca机构证书+自签证书)相关推荐

  1. Java nginx 双向ssl_使用Nginx实现HTTPS双向验证的方法

    https单向验证应用广泛想必大家都很熟悉,我已经在一篇博文中分享过,这次来看看Nginx如何实现双向验证. 单向验证与双向验证的区别: 单向验证: 指客户端验证服务器端证书,服务器并不需要验证客户端 ...

  2. linux:Nginx+https双向验证(数字安全证书)

    本文由邓亚运提供 Nginx+https双向验证 说明: 要想实现nginx的https,nginx必须启用http_ssl模块:在编译时加上--with-http_ssl_module参数就ok.另 ...

  3. nginx 配置 https双向认证

    参考文章: https://blog.csdn.net/xiangguiwang/article/details/76400805 https://blog.csdn.net/qq_37049781/ ...

  4. nginx配置https访问, 生成自签名证书

    这里说下Linux 系统怎么通过openssl命令生成 证书. 创建存放证书的目录,此目录可自定义 cd /etc/nginxmkdir keycd key 执行如下命令生成一个key openssl ...

  5. linux location root访问文件夹404_如何使网站支持https访问?nginx配置https证书

    购买SSL证书 要想使用https访问你的网址,首先得拥有颁发的SSL证书.我使用的是免费版,有效期为一年,过期后再重新申请. 申请SSL证书 购买后,可在搜索框输入证书关键字进入到控制台. 点击证书 ...

  6. 【教程】Linux下Https证书生成,与Nginx配置https

    Linux系统Https证书生成与Nginx配置https 证书生成 查看openssl 生成证书 Nginx配置https(默认443端口) 证书生成 查看openssl 1,我们在linux系统下 ...

  7. Nginx配置ssl双向认证

    最近公司项目需要配置双向认证,使用的是阿里云Linux服务器以及nginx,对应的ssl证书也使用的是阿里云的免费证书.特此记录配置流程. CA与自签名 # 制作CA私钥 openssl genrsa ...

  8. Https双向验证与Springboot整合测试-人来人往我只认你

    1 简介 不知不觉Https相关的文章已经写了6篇了,本文将是这个专题的最后一篇,起码近期是最后一篇.前面6篇讲的全都是单向的Https验证,本文将重点介绍一下双向验证.有兴趣的同学可以了解一下之前的 ...

  9. Nginx配置HTTPS客户端认证

    Nginx配置HTTPS客户端认证 最近折腾自己个人网站,有一个私人模块,只能自己访问,使用登录授权方式虽然也能达到目的,但每次都要登录,且密码也不一定安全.想起学HTTPS的时,有一个客户端证书的概 ...

最新文章

  1. linux下网卡状态,linux-网络状态
  2. springmvc xml 空模板
  3. Hadoop通过路径和和链接访问HDFS
  4. ASP.NET中Cookie的使用(实战教程)
  5. Flink从入门到精通100篇(二)-在Linux中完整安装flink并做Flink文件的配置
  6. navicat mysql两张表建立联系_初识MySQL
  7. C++类的使用(五)—— 多态
  8. 什么是ajax?ajax作用是什么?
  9. mysql存储引擎分类
  10. 自加载宏让你的Excel支持正则处理函数
  11. Android Camera2 实现连拍
  12. LeetCode: 868. Binary Gap
  13. (win10家庭版)修改C盘Users目录下文件夹名称
  14. QT中的QLineEdit设置setEchoMode
  15. 第059篇:高分二号遥感影像预处理流程(ENVI5.3.1平台+ENVI App Store中最新的中国国产卫星支持工具)
  16. logback系列之二:输出日志到文件
  17. firefox快捷键切换窗口功能
  18. 谷歌G1反抗iPhone
  19. 程序化广告(3):交易模式
  20. Automa自动化插件学习记录

热门文章

  1. unity 在移动平台中,文件操作路径详解
  2. 2016版excel_Excel怎么转换成pdf?教你三招超简单方法
  3. 基于PHP+Web的旅游网站设计与实现
  4. 微观:心流,宏观:ikigai
  5. linux date 计算时间差,linux shell date 时间运算以及时间差计算方法
  6. 使用NHibernate 3.2实现Repository(ORuM)(三)NHibernate、Mapping、Mapping-By-Code
  7. sonique的插件Dee2
  8. LHS 和 RHS---你所不知道的JavaScript
  9. gamepad android手柄,经验篇,游戏手柄使用教程,刀锋游戏手柄连接安卓苹果手机设置方法...
  10. 华为服务器插键盘的位置,服务器键盘重启