千家信息网

nginx代理服务器配置双向证书验证的方法

发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,生成证书链用脚本生成一个根证书, 一个中间证书(intermediate), 三个客户端证书.中间证书的域名为 localhost.#!/bin/bash -xset -efor C in `echo
千家信息网最后更新 2024年10月23日nginx代理服务器配置双向证书验证的方法

生成证书链

用脚本生成一个根证书, 一个中间证书(intermediate), 三个客户端证书.

中间证书的域名为 localhost.

#!/bin/bash -xset -efor C in `echo root-ca intermediate`; do mkdir $C cd $C mkdir certs crl newcerts private cd .. echo 1000 > $C/serial touch $C/index.txt $C/index.txt.attr echo '[ ca ]default_ca = CA_default[ CA_default ]dir      = '$C'  # Where everything is keptcerts     = $dir/certs        # Where the issued certs are keptcrl_dir    = $dir/crl        # Where the issued crl are keptdatabase    = $dir/index.txt      # database index file.new_certs_dir = $dir/newcerts      # default place for new certs.certificate  = $dir/cacert.pem        # The CA certificateserial     = $dir/serial        # The current serial numbercrl      = $dir/crl.pem        # The current CRLprivate_key  = $dir/private/ca.key.pem    # The private keyRANDFILE    = $dir/.rnd   # private random number filenameopt    = default_cacertopt    = default_capolicy     = policy_matchdefault_days  = 365default_md   = sha256[ policy_match ]countryName      = optionalstateOrProvinceName  = optionalorganizationName    = optionalorganizationalUnitName = optionalcommonName       = suppliedemailAddress      = optional[req]req_extensions = v3_reqdistinguished_name = req_distinguished_name[req_distinguished_name][v3_req]basicConstraints = CA:TRUE' > $C/openssl.confdoneopenssl genrsa -out root-ca/private/ca.key 2048openssl req -config root-ca/openssl.conf -new -x509 -days 3650 -key root-ca/private/ca.key -sha256 -extensions v3_req -out root-ca/certs/ca.crt -subj '/CN=Root-ca'openssl genrsa -out intermediate/private/intermediate.key 2048openssl req -config intermediate/openssl.conf -sha256 -new -key intermediate/private/intermediate.key -out intermediate/certs/intermediate.csr -subj '/CN=localhost.'openssl ca -batch -config root-ca/openssl.conf -keyfile root-ca/private/ca.key -cert root-ca/certs/ca.crt -extensions v3_req -notext -md sha256 -in intermediate/certs/intermediate.csr -out intermediate/certs/intermediate.crtmkdir outfor I in `seq 1 3` ; do openssl req -new -keyout out/$I.key -out out/$I.request -days 365 -nodes -subj "/CN=$I.example.com" -newkey rsa:2048 openssl ca -batch -config root-ca/openssl.conf -keyfile intermediate/private/intermediate.key -cert intermediate/certs/intermediate.crt -out out/$I.crt -infiles out/$I.requestdone

服务器

nginx 配置

worker_processes 1;events {  worker_connections 1024;}stream{  upstream backend{    server 127.0.0.1:8080;  }  server {    listen 8888 ssl;    proxy_pass backend;    ssl_certificate   intermediate.crt;    ssl_certificate_key intermediate.key;    ssl_verify_depth 2;    ssl_client_certificate root.crt;    ssl_verify_client optional_no_ca;  }}

客户端

curl \ -I \ -vv \ -x https://localhost:8888/ \ --proxy-cert client1.crt \ --proxy-key client1.key \ --proxy-cacert ca.crt \ https://www.baidu.com/

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

证书 内容 客户 客户端 学习 生成 服务器 服务 配置 三个 价值 就是 更多 篇文章 脚本 链接 参考 工作 支持 双向 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 浙江驿道网络技术有限公司 鹰潭软件开发制作 钱拓网络技术 辽宁高清视频会议服务器虚拟主机 高职计算机网络技术课件 网络安全大赛如何报名 服务器开发工程师面试题 问道手游雷霆服务器开通 泰安戴尔服务器代理联系方式 龙哥网络技术论坛 南充软件开发平均价格 中神网上怎么做网络安全 一个数据库有多个表空间 如何备考数据库系统工程师 Aws登录服务器二次验证 红桥金蝶软件开发有哪些 湖北中小学生家庭与网络安全 软件开发投标技术方案 堡垒机挂在服务器上吗 万方中文医学期刊数据库 检察院如何保障网络安全 武汉移动软件开发流程 济南市信息网络安全协会 涛思时序数据库 融资 河南谷雨网络技术招聘要求 倩女幽魂服务器千年缘 软件开发如何估算工时和成本 武汉大学有计算机网络技术 数据库的安全性和相容性 技术服务合同与软件开发
0