Java nginx https 双向认证

本文详述了Java和Nginx实现HTTPS双向认证的过程,包括原理、证书格式、openssl证书生成、Nginx配置、浏览器及Java代码访问的步骤,并探讨了使用购买的受信任证书的情况。
摘要由CSDN通过智能技术生成

最近要做个https 双向认证的,就做了个demo,踩了不少坑,记录一下.

主要还是对原理理解不够透彻,刚开始直接从网上搬个例子就用,结果大部分都不适用.


1.单向,双向认证过程详解

2.证书格式说明

3.使用openssl生成证书

4.nginx配置(服务器端)

5.浏览器访问(客户端)

6.java代码访问(客户端)

7.使用购买的证书(信任机构签发的)


1.单向,双向认证过程详解

过程参考博客 http://blog.chinaunix.net/uid-26335251-id-3508651.html

单向认证只是客户端认证服务端, 双向认证就是相互都要认证(双向认证这种,在浏览器一般都体现为需要证书)


2.证书格式说明

在使用openssl自己生成证书的时候,会发现网上很多例子生成的证书格式都不同,同一篇文章里也会有很多种格式.

所以就需要了解下 不同格式有什么区别和联系

参考博客http://blog.csdn.net/justinjing0612/article/details/7770301

参考博客http://www.cnblogs.com/lzjsky/archive/2010/11/14/1877143.html


der,cer文件一般是二进制格式的,只放证书,不含私钥
crt文件可能是二进制的,也可能是文本格式的,应该以文本格式居多,功能同der/cer
pem文件一般是文本格式的,可以放证书或者私钥,或者两者都有
pem如果只含私钥的话,一般用.key扩展名,而且可以有密码保护
pfx,p12文件是二进制格式,同时含私钥和证书,通常有保护密码


3.使用openssl生成证书

创建一个文件夹存放生成的证书

1)创建根证私钥
openssl genrsa -out root-key.key 1024

2)创建根证书请求文件
openssl req -new -out root-req.csr -key root-key.key

具体如下
[root@localhost sslKey]# openssl req -new -out root-req.csr -key root-key.key
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn
State or Province Name (full name) []:bj
Locality Name (eg, city) [Default City]:bj
Organization Name (eg, company) [Default Company Ltd]:dc
Organizational Unit Name (eg, section) []:dc
Common Name (eg, your name or your server's
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值