Nginx配置证书实现客户端与服务器双向认证

正常配置下的SSL是服务器认证,但是有时候为了加强校验,将会引入双向认证(多用于内部服务)。

首先配置 nginx ssl,在 nginx 配置文件中加入:

ssl on;
ssl_certificate /usr/local/ssl/xxx.crt;
ssl_certificate_key /usr/local/ssl/xxx.key;

导入ssl

之后可以将自己签署的 ca 根证书加入电脑的信任列表(此举为了让浏览器通过SSL核验):

1、首先下载 ca.crt 到本地,在 windows 上直接双击打开;

2、点击安装按钮,过程中证书安装选择添加到受信任的根证书颁发机构,确认完成后即可。

重启浏览器后访问,一般是通过了,不会提示证书有误的警告了。火狐浏览器不与IE共享证书库,可能需要另导入一份,具体的参考本站文章。

在上一步成功后,在 nginx 配置文件中加入:

ssl_client_certificate /usr/local/ssl/ca.crt;
ssl_verify_client on;

其中 ssl_client_certificate 配置 ca 的 crt 地址。

生成并安装p12证书(简称个人客户端证书):

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

这一步是利用网站已有的 crt 和 key 来生成,可能需要输入密码完成。

将生成的证书下载到本地,在 windows 上双击安装,过程参考上方,不同的是安装p12将证书需要安装到个人(路径选择),重启浏览器检查是否成功。

附:

如果没有导入证书,则会直接提示400错误,而如果已成功导入证书在访问的时候就可以直接进入(可能会提示你选择证书)。

相关推荐:
自称 GnosticPlayers 的黑客声称窃取了澳大利亚网站 Canva 的 1.39 亿用户数据。 Canva 是一个非常受欢迎的平面设计服务,Alexa 排名在 200 以内。 黑客窃取的数据包括了用户名字、真名 、电邮地址、城市国 …
原因在于导出activity,任何软件都可以调用它,包括攻击者编写的软件,可能产生恶意调用,应用会产生拒绝服务等问题。 遇到这样的问题,如果它们只被同一个软件中的代码调用,将activity属性改为android:ex …
源码安装软件时一直make不了,后来重新./configure了下,发现后面出现错误:error: mbed TLS libraries not found。 这样的问题其实是出在缺少「mbed TLS」库,那么我们开始缺啥补啥。需要先安装mbed库,从 …
微软.NET4.6主要提供了全新的64位 RyuJIT及时编译引擎,对WPF, Windows Forms程序高对比度的支持,这将大幅提升了.NET应用的运行速度。 硬件环境配置要求:— 1GHz或更快的处理器— 512MB RAM— 850MB的可用硬 …
科普下: build.prop 是Android系统中一个类似于Windows系统注册表的文件,该文件内定义了系统初始(或永久)的一些参数属性、功能的开放等。并且在 Android中虽然每一版都有自己独有的参数,但绝大部分都是 …
拿起手机扫一扫即可带走我!