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错误,而如果已成功导入证书在访问的时候就可以直接进入(可能会提示你选择证书)。

相关推荐:
安全性测试,一般是先收集数据,然后进行相关的渗透测试工作,获取到网站或者系统的一些敏感数据,从而可能达到控制或者破坏系统的目的。 第一步是信息收集,收集如IP地址、DNS记录、软件版本信息、IP段等信息。可以 …
根据报错信息“configure: error: off_t undefined; check your library configuration”分析,未定义的类型 off_t。 off_t 类型是在头文件 unistd.h中定义的,在32位系统 编程成 long int ,64位系统则编译成 long lo …
运行“services.msc”,在打开的列表里检查“DNS Client”服务项有没有启,没启的话就右键单击启动,然后双击设置自动启动即可。 …
装了个Linux,不幸地是开机时遇到了错误的提示“Could not apply the stored configuration for monitors”。简单地从英文上理解就是说当前的显示配置运用时有问题,换句话说这是显示器的配置文件出了异常。 怎么解决 …
说到jsonp安全性的防范,我们可以从以下几点出发:1、 防止callback参数意外截断js代码,特殊字符单引号双引号,换行符均存在风险;2、 防止callback参数恶意添加标签(如script),造成XSS漏洞;3、 防止跨域请求滥 …
拿起手机扫一扫即可带走我!