nginx配置https的双向认证方式

 更新时间:2024年11月19日 09:35:26   作者:CheerTan  
文章主要介绍了如何配置Nginx双向认证的详细步骤,包括生成证书、配置Nginx等,并提供了个人经验供参考

GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
如果你想靠AI翻身,你先需要一个靠谱的工具!

注意事项

配置双向认证,这里的common name需要都配置成不同

nginx 配置 https的双向认证

准备工作

linux环境安装openssl

生成证书步骤

1.新建一个文件夹

2.生成CA私钥 ca.key

1
openssl genrsa -out ca.key 4096

3.生成ca的数字证书 ca.crt

1
2
3
4
5
6
7
8
9
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
填入组织名称等信息

4.生成server端的私钥

1
openssl genrsa -out server.key 4096

5.生成 server 端数字证书请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
openssl req -new -key server.key -out server.csr
 Country Name (2 letter code) [AU]:CN
 State or Province Name (full name) [Some-State]:Shanghai
 Locality Name (eg, city) []:
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sidien Test
 Organizational Unit Name (eg, section) []:
 Common Name (e.g. server FQDN or YOUR name) []:192.168.0.162
 Email Address []:
 
 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:
 An optional company name []:
输入相关信息和密码

6.用 CA 私钥签发 server 的数字证书

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

7. 生成客户端私钥

1
openssl  genrsa  -out  client.key  4096

8. 生成客户端数字请求证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
openssl req -new -key client.key -out client.csr
 Country Name (2 letter code) [AU]:
 State or Province Name (full name) [Some-State]:
 Locality Name (eg, city) []:
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:
 Organizational Unit Name (eg, section) []:
 Common Name (e.g. server FQDN or YOUR name) []:
 Email Address []:
 
 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:
 An optional company name []:
输入相关信息和密码

9.用CA私钥签发数字证书:client.crt

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

10.生成windows安装证书程序

1
openssl pkcs12 -export -inkey client.key -in client.crt -out client.pfx

将client.pfx拷贝到作为客户端的机器上,安装证书,输入生成时的密码

11.配置nginx

1
2
3
4
ssl_certificate  /etc/pki/ca_linvo/server/server.crt;     #server公钥路径
ssl_certificate_key  /etc/pki/ca_linvo/server/server.key;   #server私钥路径
ssl_client_certificate   /etc/pki/ca_linvo/root/ca.crt;   #根级证书公钥路径,用于验证各个二级client
ssl_verify_client on;   开启双向认证

认证成功

1
curl --cert ./client.crt --key ./client.key https://url -k -v

开启gzip跟缓存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
gzip  on;
 
    gzip_min_length     256;
    gzip_buffers        4 16k;
    gzip_http_version   1.1;
    gzip_vary on;
    gzip_comp_level 3;
    gzip_disable "MSIE [1-6]\.";
    gzip_proxied any;
#这里设置需要压缩的格式
    gzip_types
    application/atom+xml
    application/javascript
    application/json
    application/ld+json
    application/manifest+json
    application/rss+xml
    application/vnd.geo+json
    application/vnd.ms-fontobject
    application/x-font-ttf
    application/x-web-app-manifest+json
    application/xhtml+xml
    application/xml
    font/opentype
    image/bmp
    image/svg+xml
    image/x-icon
    text/cache-manifest
    text/css
    text/plain
    text/vcard
    text/vnd.rim.location.xloc
    text/vtt
    text/x-component
    text/x-cross-domain-policy;
        location / {   
       root   /root/www/web;
       index  index.html;
       autoindex on;
            if ($request_filename ~ .*.(js|css)$)
         {
         expires 7d;
         }
    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

蓄力AI

微信公众号搜索 “ 脚本之家 ” ,选择关注

程序猿的那些事、送书等活动等着你

原文链接:https://blog.csdn.net/weixin_43877605/article/details/120701574

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!

相关文章

  • Nginx中透传客户端真实IP的技巧

    Nginx中透传客户端真实IP的技巧

    为了记录日志、限制访问或进行其他基于 IP 地址的操作,获取客户端的真实 IP 地址非常重要,本文就来详细的介绍一下Nginx中透传客户端真实IP的技巧,感兴趣的可以了解一下
    2024-08-08
  • 浅谈nginx基于请求头或请求内容的防护

    浅谈nginx基于请求头或请求内容的防护

    本文主要介绍了浅谈nginx基于请求头或请求内容的防护,通常涉及到对请求进行过滤,检查其是否包含某些特定的值或模式,感兴趣的可以了解一下
    2023-10-10
  • 如何用nginx解决前端部署跨域问题

    如何用nginx解决前端部署跨域问题

    这篇文章主要介绍了如何用nginx解决前端部署跨域问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Nginx中proxy_pass指令斜杠的作用及说明

    Nginx中proxy_pass指令斜杠的作用及说明

    这篇文章主要介绍了Nginx中proxy_pass指令斜杠的作用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Nginx文件下载站点搭建的实现步骤

    Nginx文件下载站点搭建的实现步骤

    本文主要介绍了Nginx文件下载站点搭建的实现步骤,包含配置Nginx和Fancyindex来搭建文件下载站点,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Nginx的HA高可用的搭建的实现

    Nginx的HA高可用的搭建的实现

    高可用是一种系统设计策略,旨在确保服务或应用在面对硬件故障、软件缺陷或任何其他异常情况时,仍能持续稳定地运行,本文主要介绍了Nginx的HA高可用的搭建,感兴趣的可以了解一下
    2024-08-08
  • nginx部署前端dist包详细图文教程

    nginx部署前端dist包详细图文教程

    本文介绍了如何下载Nginx的稳定版,并对下载后的压缩包进行解压和配置,涵盖了将文件放入html目录、修改nginx.conf配置文件以及启动Nginx的步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • windows7下安装PHP+nginx的方法

    windows7下安装PHP+nginx的方法

    这篇文章主要介绍了windows7下安装PHP+nginx的方法,较为详细的分析了Windows7环境下安装php与nginx服务器环境的具体步骤与相关设置技巧,需要的朋友可以参考下
    2016-05-05
  • nginx超时设置详细介绍

    nginx超时设置详细介绍

    这篇文章主要介绍了nginx超时设置详细介绍的相关资料,需要的朋友可以参考下
    2017-05-05
  • 教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤

    教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤

    这篇文章主要介绍了利用 Nginx 服务搭建子域环境提升二维地图加载性能,本文分步骤通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-09-09

最新评论