nginx双向认证

本文详细介绍了如何在 Nginx 中配置双向认证,包括创建自签名CA、生成服务器和客户端证书,以及配置Nginx所需的关键步骤。通过这个过程,只有持有有效客户端证书的用户才能访问服务接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于 NGINX 的 HTTPS 配置,通常情况下我们只需要实现服务端认证就行,因为浏览器内置了一些受信任的证书颁发机构(CA),服务器端只需要拿到这些机构颁发的证书并配置好,浏览器会自己校验证书的可用性并通过 SSL 进行通讯加密。

但特殊情况下我们也需要对客户端进行验证,只有受信任的客户端才能使用服务接口,此时我们就需要启用双向认证来达到这个目的,只有 当客户端请求带了可用的证书才能调通服务端接口 。

前期的准备工作:

安装openssl和nginx的https模块

cd  ~/
mkdir ssl
cd ssl
mkdir demoCA
cd demoCA
mkdir newcerts
mkdir private
touch index.txt
echo '01' > serial
 

一 CA 与自签名

CA 是权威机构才能做的,并且如果该机构达不到安全标准就会被浏览器厂商“封杀”,前不久的沃通、StartSSL 就被 Mozilla、Chrome 封杀了。不过这并不影响我们进行双向认证配置,因为我们是自建 CA 的..

为了方便,我们就在 NGINX 的目录下进行证书相关制作:

cd /etc/nginx
mkdir ssl
cd ssl

1.1 制作 CA 私钥

openssl genrsa -out ca.key 2048

这样是生成rsa私钥,`des3`算法,openssl格式,2048位强度。`ca.key`是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。 

命令:openssl genrsa -des3 -out ca.key 2048

另外可以通过以下方法生成没有密码的key:

openssl rsa -in ca.key -out ca_decrypted.key

 

1.2 制作 CA 根证书(公钥)

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

注意:

  1. Common Name 可以随意填写
  2. 其他需要填写的信息为了避
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值