ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx配置https双向认证

2022-05-09 14:02:20  阅读:249  来源: 互联网

标签:https ssl 证书 认证 Nginx client key root crt


一.生成自签名根证书

创建根证书私钥:

openssl genrsa -out root.key 1024

创建根证书请求文件:

    openssl req -new -out root.csr -key root.key
     
    ############注意##############
    根证书的Common Name填写root就可以,根证书的这个字段和客户端证书、服务器端证书不能一样
    其他字段必须与根证书一致,为了不容易出错,其他所有字段输入.
    输入密码也输入.

创建根证书:

openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650

这里我们就得到效期为10年的根证书root.crt,我们现在已经有3个文件:

 

二.生成自签名客户端证书

生成客户端证书秘钥:

openssl genrsa -out client.key 1024

生成客户端证书请求文件:

    openssl req -new -out client.csr -key client.key
     
    #############注意##############
    客户端证书Common Name必须填写访问的域名,该域名与nginx配置的域名一致,可以设置*.xx.com匹配所有二级域名
    其他字段必须与根证书字段信息一致,所以其他字段全部输入.
    密码输入.

生客户端证书:

openssl x509 -req -in client.csr -out client.crt -signkey client.key -CA root.crt -CAkey root.key -CAcreateserial -days 3650

客户端证书生成完毕,我们的文件有:

校验客户端证书与根证书是否创建正确:

openssl verify -CAfile root.crt client.crt

生客户端p12格式证书:

    openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
     
    # 密码输入.

 

三.Nginx配置

    ssl_certificate     /opt/ssl_test/root.crt;
    ssl_certificate_key /opt/ssl_test/root.key;
    ssl_client_certificate /opt/ssl_test/root.crt;
    ssl_verify_client on;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;

 

四.验证

这个时候访问会显示400错误:

下载client.p12到本地的计算机,打开浏览器-》设置-》安全与隐私-》证书管理:

密码输入.

然后点击下一步

导入证书成功,需要重启浏览器,再次访问成功

 

五.curl带证书访问

curl带证书访问:

    curl --cert ./client.crt --key ./client.key https://xxx.xxx.com -k

标签:https,ssl,证书,认证,Nginx,client,key,root,crt
来源: https://www.cnblogs.com/xiaofengfree/p/16248957.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有