首页
留言
友链
架子鼓
更多
壁纸
直播
时光机
关于
Search
1
谷豆电视直播代理源码,谷豆代理原理解析
45,166 阅读
2
华为鸿蒙系统无法安装 xapk APP 闪退 ( youtube vanced ) 的解决办法
27,006 阅读
3
[转载]青龙面板+Ninja从零安装教程
19,149 阅读
4
docker 之 typecho 镜像-不推荐
13,112 阅读
5
typecho插件 - 在线下载主题到服务器 - addTheme 发布
8,894 阅读
技术
php
linux
mysql
redis
typecho
nginx
go
python
dnmp
工具
日记
理财日记
生活日记
生活
kindle 资源
公告
虚拟机
登录
Search
标签搜索
msyql
主从
华为
鸿蒙
xapk
闪退
APP 闪退
kindle
mobi
docker
pip
alpine
梦浪的小虾米
累计撰写
143
篇文章
累计收到
588
条评论
首页
栏目
技术
php
linux
mysql
redis
typecho
nginx
go
python
dnmp
工具
日记
理财日记
生活日记
生活
kindle 资源
公告
虚拟机
页面
留言
友链
架子鼓
壁纸
直播
时光机
关于
搜索到
1
篇与
的结果
2022-09-15
https 双向证书认证踩坑 (nginx)
背景公司的后台被别有用心的人攻击了,导致公司损失了几个小目标。恰巧与世隔绝的技术总监回来了,他提出把后台设置成证书访问(https 双向访问认证),即:用户访问后台地址的时候,本地需要安装特定的公钥证书,然后才能访问后台,不然 nginx 就直接返回 400 ,然后让我来试试看怎么弄。踩了一下午的坑,总算是走通了流程。看看原理不复制了,你们自己去看:https://blog.csdn.net/easylife206/article/details/107776854小白流程创建根证书openssl genrsa -out root.key 2048创建根证书请求文件:openssl req -new -out root.csr -key root.key创建根证书openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650在创建证书请求文件的时候需要注意三点,下面生成服务器请求文件和客户端请求文件均要注意这三点:Common Name 填写证书对应的服务域名;所有字段的填写,根证书、服务器端证书、客户端证书需保持一致最后的密码可以直接回车跳过。创建服务器端证书私钥openssl genrsa -out server.key 1024创建服务器端证书请求文件openssl req -new -out server.csr -key server.key创建服务器端公钥文件openssl x509 -req -in server.csr -out server.crt -signkey server.key -CA root.crt -CAkey root.key -CAcreateserial -days 3650创建客户端证书私钥openssl genrsa -out client.key 1024创建客户端证书请求文件openssl req -new -out client.csr -key client.key创建客户端证书公钥openssl x509 -req -in client.csr -out client.crt -signkey client.key -CA root.crt -CAkey root.key -CAcreateserial -days 3650创建win可用的p12格式证书 openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12 (-clcerts 可以去掉)修改nginx配置(示例)server { listen 443 ssl; server_name www.yourdomain.com; ssl on; ssl_certificate /data/sslKey/server.crt; #server公钥证书 ssl_certificate_key /data/sslKey/server.key; #server私钥 ssl_client_certificate /data/sslKey/root.crt; #客户端公钥证书 ssl_verify_client on; #开启客户端证书验证 location / { root html; index index.html index.htm; } }测试配置是否正常curl --cacert root.crt --cert ./client.crt --key ./client.key https://test.cc --resolve test.cc:443:127.0.0.1 把生成的证书导入本地浏览器root.crt 导入受信任的根证书颁发机构 client.p12 直接点击该文件进行自动导入,一切默认选项。 Tips所有字段的填写,根证书、服务器端证书、客户端证书需保持一致最后的密码可以直接回车跳过。本博主建议:配置完 nginx 后,重启了 nginx 就开始使用 curl 进行请求,确认自己的配置是否 ok。然后在进行浏览器的调整。我一开始都摸不着头脑,不知道怎么弄。本博主建议使用 ie 浏览器调整浏览器访问的效果,不然谷歌和火狐坑的你不知道东南西北。ie 是改完就能看到效果,而 chrome 是需要重启电脑才会看到效果。根证书的Common Name填写root就可以,所有客户端和服务器端的证书这个字段需要填写域名,一定要注意的是,根证书的这个字段和客户端证书、服务器端证书不能一样(本博主在总结一下:ca证书是指颁发机构的名字,所以尽量写一个自己知道的名字,而服务器要和客户端的名字一样);Nginx 的 ssl_client_certificate 需要配置根证书 root.crt,而不是客户端证书;有一点需要注意的就是,如果客户端证书不是由根证书直接颁发的,配置中还需要加一个配置:ssl_verify_depth 1;一些快捷键windows: mmc 证书管理 certmgr.msc 证书管理参考https://www.cnblogs.com/xiao987334176/p/11041241.htmlhttps://blog.51cto.com/tchuairen/1782945https://blog.csdn.net/easylife206/article/details/107776854https://blog.51cto.com/u_15148274/5502780https://www.jianshu.com/p/2b2d1f511959https://www.jianshu.com/p/003c6fb3dc2dhttps://www.cnblogs.com/smilexumu/p/9039251.htmlhttps://blog.csdn.net/a82514921/article/details/104587416https://blog.csdn.net/a82514921/article/details/104587416https://blog.csdn.net/weixin_39611308/article/details/110794666https://www.xitongcheng.com/jiaocheng/win10_article_67483.htmlhttps://github.com/avwo/whistle/issues/22https://blog.csdn.net/Drug_/article/details/100893157https://www.hi-linux.com/posts/38492.html#vip-container
2022年09月15日
1,117 阅读
1 评论
1 点赞