小知识:Nginx+SSL实现双向认证的示例代码

首先创建一个目录

?
1
2
3
cd /etc/nginx
mkdir ssl
cd ssl

CA与自签名

制作CA私钥

?
1
openssl genrsa –out ca.key 2048

制作 CA 根证书(公钥)

?
1
openssl req -new -x509 -days 3650 -key ca.key –out ca.crt

注意:

1、Common Name 可以随意填写

2、其他需要填写的信息为了避免有误,都填写 . 吧

服务器端证书

制作服务器端私钥:

?
1
2
openssl genrsa -out server.pem 1024
openssl rsa -in server.pem -out server.key

生成签发请求:

?
1
openssl req -new -key server.pem -out server.csr

注意:

1、Common Name 得填写为访问服务时的域名,这里我们用 usb.dev 下面 NGINX 配置会用到

2、其他需要填写的信息为了避免有误,都填写 . 吧(为了和 CA 根证书匹配)

用CA签发

?
1
openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt

客户端证书

与服务端证书类似

注意:

1、Common Name可以随意填写

2、其他需要填写的信息为了避免有误,都填写 . 吧(为了和 CA 根证书匹配)

至此需要的证书都弄好了,我们可以开始配置 NGINX 了。

Nginx配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 443;
server_name usb.dev;
index index.html;
root /data/test/;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_client_certificate /etc/nginx/ssl/ca.crt;
ssl_verify_client on;
}

请求验证

验证过程可以选择在其他机器或是本机,为了能够解析 usb.dev,还需要配置一下 /etc/hosts:

?
1
ip地址 usb.dev

如果用浏览器验证,需要把客户端证书导出成 p12 格式的

?
1
openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12

从服务器上将几个证书下载下来,然后安装到可信的证书列表,点击刚才生成的p12文件输入证书的密码将安装至个人列表。

然后关闭浏览器,重新输入域名,会出现ssl双向验证的证书提示。选择证书即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.jianshu.com/p/dda98b8a079f

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:使VMware ip与本机ip处于同一网段的方法

2023-4-10 22:15:19

建站知识

小知识:linux系统下定时执行php脚本的方法

2023-4-10 22:22:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索