Nginx 配置 SSL 双向认证

1. CA与自签名

制作 CA 私钥:

cd /App/nginx/conf
mkdir -p ssl
openssl genrsa -out ca.key 2048

制作 CA 公钥/根证书:

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/C=CN/ST=BeiJing/L=HaiDian/O=SHAREit Inc./OU=App/CN=root"
2. 服务器端证书

制作服务器端私钥:

openssl genrsa -out server.pem 2048
openssl rsa -in server.pem -out server.key

生成签发请求:

openssl req -new -key server.pem -out server.csr -subj "/C=CN/ST=BeiJing/L=HaiDian/O=SHAREit Inc./OU=App/CN=域名"

CN 为服务器的域名,不能与 CA 的相同。

用 CA 签发证书:

openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt
3. 客户端证书

制作私钥:

openssl genrsa -out client.pem 2048
openssl rsa -in client.pem -out client.key 

生成签发请求:

openssl req -new -key client.pem -out client.csr -subj "/C=CN/ST=BeiJing/L=HaiDian/O=SHAREit Inc./OU=App/CN=域名"

CN 为服务器的域名,不能与 CA 的相同。

用 CA 签发:

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

如果是浏览器访问,需要将证书转换为 p12 格式,然后手动导入浏览器:

openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12
4. Nginx 配置 server 段添加指令
ssl_verify_client on;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_client_certificate ssl/ca.crt;
5. 验证
curl --insecure --key client.key --cert client.crt 'https://域名'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值