nginx 配置 ssl 双向证书

CA 根证书制作

# 创建 CA 私钥
openssl genrsa -out ca.key 2048

#制作 CA 根证书(公钥)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

注意:
CA 证书中的 Common Name 不能与 server 和 client 证书中的 Common Name 相同

制作证书

# 创建私钥
openssl genrsa -out server.pem 1024
openssl rsa -in server.pem -out server.key

# 生成签发请求
openssl req -new -key server.pem -out server.csr

# 使用 CA 证书进行签发
openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt

# 验证签发证书是否正确
openssl verify -CAfile ca.crt server.crt

# 制作 p12 证书(导入浏览器)
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12

客户端证书创建方式与服务器证书创建方式相同

nginx 配置

ssl on;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_client_certificate ssl/ca.crt;
ssl_verify_client on;

使用

curl --key client.key --cert client.crt -XGET "https://localhost:11443" -k -v

原文地址:http://blog.51cto.com/51reboot/2066436

时间: 2024-10-08 04:04:44

nginx 配置 ssl 双向证书的相关文章

NGINX 配置 SSL 双向认证

对于 NGINX 的 HTTPS 配置,通常情况下我们只需要实现服务端认证就行,因为浏览器内置了一些受信任的证书颁发机构(CA),服务器端只需要拿到这些机构颁发的证书并配置好,浏览器会自己校验证书的可用性并通过 SSL 进行通讯加密. 但特殊情况下我们也需要对客户端进行验证,只有受信任的客户端才能使用服务接口,此时我们就需要启用双向认证来达到这个目的,只有 当客户端请求带了可用的证书才能调通服务端接口 . CA 与自签名 CA 是权威机构才能做的,并且如果该机构达不到安全标准就会被浏览器厂商“封

Nginx配置SSL安全证书避免启动输入Enter PEM pass phrase

配置好的Nginx每次启动都要输入PEM pass phrase,如何避免Nginx启动出现Enter PEM pass phrase呢? 这种情况可能是在设置私钥key时将密码设置写入了key文件,导致Nginx/Apache等系列服务器在启动时要求Enter PEM pass phrase.我们需要做的是剥离这个密码,利用如下OpenSSL命令生成server.key.unsecure文件: openssl rsa -in server.key -out server.key.unsecur

Nginx配置ssl安全证书

server { listen 443; server_name www.loaclhost.com; ssl on; root /web; ssl_certificate /data/ssl/xxx.crt; ssl_certificate_key /data/ssl/xxx.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers

[转帖]nginx配置ssl加密(单/双向认证、部分https)

nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627 nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换(rewrite)到https,后来自动化测试结果说响应速度太慢,https比http慢慢30倍,心想怎么可能,鬼知道他们怎么测的.所以就试了一下部分页面h

Windows下Nginx配置SSL实现Https访问(包含证书生成)

Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https? HTTP全名超文本传输协议,客户端据此获取服务器上的超文本内容.超文本内容则以HTML为主,客户端拿到HTML内容后可根据规范进行解析呈现.因此,HTTP主要负责的是"内容的请求和获取".问题就出在这部分.行监控.劫持.阻挡等行为很容易导致网站泄密,一些关键参数比如登录密码开发者会在客户端

Nginx配置SSL证书部署HTTPS网站(转)

原文:http://www.lovelucy.info/nginx-ssl-certificate-https-website.html 一.什么是 SSL 证书,什么是 HTTPS SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现: 1.数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听: 2.用户可以通过服务器证书验证他所访问的网站是否真实可靠. (via百度百科) HTT

Nginx、SSL双向认证、PHP、SOAP、Webservice、https

本文是1:1模式,N:1模式请参见新的一篇博客<SSL双向认证(高清版)> ----------------------------------------------------- 我是分割线 --------------------------------------------------------- 标题太长了不知道该怎么起,索性就把keyword列出来吧~ WebService的WS-*搞了一天没搞定,看样子PHP应该是彻底抛弃SOAP协议了,google翻烂了也没找到什么靠谱的解

12.17 Nginx负载均衡;12.18 ssl原理;12.19 生产ssl密钥对;12.20 Nginx配置ssl

扩展: 针对请求的uri来代理 http://ask.apelearn.com/question/1049 根据访问的目录来区分后端web http://ask.apelearn.com/question/920 12.17 Nginx负载均衡 1. 安装dig命令: [[email protected] ~]# yum install -y bind-utils 2. 用dig获取qq.com的ip地址: [[email protected] ~]# dig qq.com 3. 创建ld.co

Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)

准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796.html) 2.证书颁发机构(CA)颁发的有效证书,其中我们需要两个文件,一个是 .key文件(私钥),另一个是 .crt或.pem文件(公钥) 核心功能 ? 通过指定由受信任的证书颁发机构(CA)颁发的有效证书,将服务器配置为侦听端口上的HTTPS流量. ? 通过配置nginx.conf文件来加强