一.双向认证服务介绍
单向认证是客户端根据ca根证书验证服务端提供的服务端证书和私钥;双向认证还要服务端根据ca根证书验证客户端证书和私钥,因此双向认证之前还需要生成客户端证书和私钥。
二.客户端证书生成
生成客户端证书的方式基本与生成服务端的方式一致,唯一区别就是证书的申请机构不同。
1)生产客户端密钥
openssl genrsa -des3 -out client.key 1024
2)生成客户端证书签名请求
需要注意的是,国家、省份、颁发机构必须与根证书保持一致
openssl req -new -key client.key -out client.csr -config openssl.cnf
3)生成证书
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
4)生成平.p12格式证书链
对客户端证书和私钥进行打包处理,这里方便安装以后后续访问时候携带,一般都是使用pkcs12进行打包:
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
三.Nginx配置
双向认证,需要在nginx中开启服务端对客户端的认证。
重启Nginx,如果重启不行那就杀掉进程,我重启没什么效果,还是直接杀掉进程启动比较好。
访问浏览器,看看效果,之前可以正常访问的页面又不能正常访问了。
导入client.p12到客户端浏览器
再次刷新浏览器可以看到可以正常访问Tomcat服务了